返回已删除的 QDockWidget 标题栏以实现可拖动性

Posted

技术标签:

【中文标题】返回已删除的 QDockWidget 标题栏以实现可拖动性【英文标题】:Return removed title bar of a QDockWidget for drag-ability 【发布时间】:2020-07-14 15:37:29 【问题描述】:

所以我们可以像这样删除QDockWidget 的标题栏:

self.dW1.setTitleBarWidget(QtGui.QWidget(self.dW1))

现在停靠小部件不可取消停靠和拖动。那么有没有办法把标题栏放回去呢?

或者也许是另一种(甚至更好)的方式,有没有一种方法可以将(隐藏标题栏的)拖动能力委托给整个窗口(我希望从上面的代码部分中得到,但它不起作用那个 wqay) 还是标签页?

只是为了避免一些死胡同:我已经测试了一些涉及拖动 QTabWidget 选项卡的解决方案,但它们缺乏选项卡式 QDockWidgets 的灵活性(例如将其取消停靠到新窗口并停靠到窗口的不同位置)。

【问题讨论】:

【参考方案1】:

如果你想返回默认的标题栏,那么你必须通过None:

self.dW1.setTitleBarWidget(None)

【讨论】:

谢谢,作为一个魅力,被接受的答案。你知道如何查询 TitleBarWidget 的状态吗?我试过if self.dw1.titleBarWidget == None,但不管dw1 titleBarWidget 状态如何,它总是给出False 值... @Oak_3260548 使用if self.dw1.titleBarWidget() is None:

以上是关于返回已删除的 QDockWidget 标题栏以实现可拖动性的主要内容,如果未能解决你的问题,请参考以下文章

如何使用标签栏以全屏模式打开 UIView?

QMdiArea 子窗口中的 QDockWidget 不能停靠在顶部和底部

从二叉搜索树返回已删除的节点

QDockWidget 隐藏标题栏

PySide/PyQt QMainWindow 如何关闭 QDockWidget?

QDockWidget 不会显示内容