【发布时间】:2016-01-03 01:14:19
【问题描述】:
我有两个小部件(都是QFrames),它们都没有与之关联的任何标题栏(我通过setWindowFlags(Qt::FramelessWindowHint) 实现)。其中一个是主窗口小部件,另一个是侧边栏类型的窗口小部件,它应该贴在它的右边界(它的高度大约是主窗口小部件的 1/4)。
我不能将它们都保持在具有静态定位的透明QFrame 中,因为主小部件可以通过其顶部拖动(因为它缺少标题栏,我通过拦截mousepress/mousemove 事件手动完成并相应地移动它)。主小部件上的自定义拖动工作正常,但是当我尝试同时移动侧边栏时,两者之间会出现非常明显的视觉延迟,将主小部件向左拖动时两者之间会出现短暂的间隙,或者向右拖动主小部件时两者之间的瞬间重叠(侧边栏不可拖动,没有为其实现拖动逻辑)。
如何将这两个小部件“粘合”在一起,以使它们一直一起移动而不会有任何延迟?我浏览了 Qt 文档,QDockWidget 可能会在这里提供帮助,但我不明白如何。这里的主要小部件不是QMainWindow。
平台 - OS X Yosemite,Qt 5.3.1,32 位。
【问题讨论】:
标签: c++ qt qwidget qdockwidget qlayout