就像qmmp(Qt)音乐播放器ui设计一样,这两个或三个窗口实际上在同一个窗口中,因为只有一个dock图标,并且这些窗口可以一起移动并相互附着。
我看了源码,好像有用QDockWidget
。但我真的不知道如何获得它的细节。
当您手动移动辅助窗口(在本例中为播放列表)时,您检查手动移动结束的位置,如果它位于主窗口的边缘,则只需将其位置绑定到播放列表的位置和尺寸即可将其粘合起来。主窗口。
由于窗口位置和尺寸是属性,因此它们具有通知信号,因此您可以将它们连接到自动移动粘合窗口的函数。
最后,当您尝试手动移动辅助窗口时,您可以通过断开连接来取消粘合。
通过计算和存储定位偏移并将其应用于每个主窗口移动,您可以轻松支持偏移粘合,而不是纯粹的水平或垂直粘合。
如果下降发生在主窗口的给定阈值内,您可以捕捉到边缘。如果考虑鼠标相对于拖动窗口的位置,您甚至可以将特定边缘对齐在一起。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)