赢7、Qt 5.3
I use a QDockWidget
与我的申请。按预期工作。
现在我通过设置隐藏标题栏setTitleBarWidget(new QWidget(this))
到默认构造的小部件。根据 Qt 文档,这是标准方法。也可以,标题栏不见了。
为了将我的小部件取消停靠为窗口,我使用myDockWidget->setFloating(true)
(在我自己的插槽中)。但现在,当小部件取消停靠时,浮动窗口不再有边框(因此无法移动)。
如果我评论掉setTitleBarWidget
, also myDockWidget->setFloating(true)
作品。所以原来的标题栏似乎融入了一些逻辑。然而,通过查看源代码,我找不到任何特别的地方。
有什么提示我可以做些什么来克服这个问题吗?
这是预期的行为。看QDockWidget::setTitleBarWidget
docs:
如果设置了标题栏小部件,QDockWidget 在浮动时将不会使用本机窗口装饰。
此行为的目的是允许为停靠小部件实现完全自定义的标题栏。
解决方法是连接到QDockWidget::topLevelChanged
当小部件变为浮动或停靠时发出的信号,并在其浮动时将标题栏小部件设置为 0 以恢复默认行为。
请注意,当设置默认标题栏小部件时,不会删除以前的标题栏小部件,因此您应该删除以前使用的 QWidget 或保存指向它的指针并在下次使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)