【问题标题】:Prevent a dock from being resized to the point of disappearing防止码头被调整到消失的程度
【发布时间】:2014-12-18 18:14:20
【问题描述】:

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

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

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

更新:此代码解决了问题(请参阅下面 Luke 的回答)

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

【问题讨论】:

    标签: python pyside pyqtgraph


    【解决方案1】:

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

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

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

    【讨论】:

    • 完美,谢谢! (首先感谢您提供 pyqtgraph!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多