QDockWidget -窗口没有边界时浮动
QDockWidget - window with no borders when floating
win7, Qt 5.3
我在我的应用程序中使用QDockWidget
。
现在我通过将setTitleBarWidget(new QWidget(this))
设置为默认构造的小部件来隐藏标题栏。根据Qt文档,这是标准的方法。也可以,标题栏不见了
为了卸载我的小部件作为窗口,我使用myDockWidget->setFloating(true)
(在我自己的插槽)。但是现在,当小部件未停靠时,浮动窗口不再有边界(因此不能移动)。
如果我注释掉setTitleBarWidget
, myDockWidget->setFloating(true)
也可以工作。原来的标题栏似乎包含了一些逻辑。然而,通过查看源代码,我没有发现任何特别的东西。
我能做些什么来克服这个问题吗?
这是预期的行为。参见QDockWidget::setTitleBarWidget
docs:
如果设置了标题栏小部件,QDockWidget在浮动时不会使用本机窗口装饰。
这个行为的目的是允许为dock小部件实现完全自定义的标题栏。
一个解决方法是连接到QDockWidget::topLevelChanged
信号,当小部件成为浮动或停靠时发出,并将标题栏小部件设置为0,只要它是浮动的,以恢复默认行为。
请注意,当设置默认标题栏小部件时,以前的标题栏小部件不会被删除,因此您应该删除以前使用的QWidget,或者保存指向它的指针,以便下次使用它。
相关文章:
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 问:如何使用C++中的按钮从窗口打开窗口
- SDL 窗口不会弹出
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 如何在cpp文件之间切换窗口?在Qt中
- QuadTree只在窗口的右上角绘制
- std::当在256字节边界上写入整数时,流的奇怪行为
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 如何在C++中找到active directory中禁用和锁定的窗口帐户
- 将迭代器作为 3 个元素的滑动窗口,可以超调边界(可能使用 Boost)
- OpenGL非排他性全屏模式(又称全屏无边界窗口)
- 如何在使用网格布局时重叠qwidgets,并将重叠的widget定位在距离窗口边界特定距离的位置
- 在SFML中超过窗口边界时,将光标发送到新行
- 在C++窗口代码中有没有任何方法可以阻止鼠标移动到窗口边界之外
- Aero Snap的无边界窗口在最大化状态下过大
- Win32 -如何动画无边界窗口
- 创建无边界的DirectShow窗口
- QDockWidget -窗口没有边界时浮动
- Windows无边界OpenGL窗口有奇怪的选项卡问题
- 无边界窗口杂乱(毫米)