1

我正在使用 PySide 和 pyqtgraph 构建一个应用程序,并从单个 DockArea 中的多个码头 (pyqtgraph.dockarea.Dock) 构建它。但是我注意到,通过单击并拖动分隔它们的拆分器来调整停靠点的大小时,您可以轻松地将它们拖动到很小的位置,直到它们突然消失。在它们消失后,如果您将仍然存在的滑块拖回以再次创建空间,它们将重新出现。

比如在pyqtgraph自带的dockarea例子中,如果你把左侧面板中的splitter往下拉,最终左下dock就消失了。将其向上拖动并重新出现。如何完全防止消失过程发生?我希望所有码头始终可见。

我查看了 pyqtgraph.dockarea 代码,但找不到控制调整大小行为的方法。我已经在我的应用程序中对 Dock 进行了子类化,因此如果有必要以这种方式修改方法,我可以轻松完成。

更新:这段代码解决了这个问题(见下面卢克的回答)

class DockArea(pyqtgraph.dockarea.DockArea):
    def makeContainer(self, typ):
        new = super(DockArea, self).makeContainer(typ)
        new.setChildrenCollapsible(False)
        return new
4

1 回答 1

2

您可以通过 DockArea 中的 QSplitters 禁用折叠:

http://doc.qt.io/qt-4.8/qsplitter.html#setCollapsible

可能影响所有容器的最简单方法是扩展DockArea.makeContainer() (注意 HContainer 和 VContainer 是 QSplitter 的子类)。

于 2014-10-25T16:02:58.270 回答