1

私は PySide と pyqtgraph を使用してアプリケーションを構築しており、単一の DockArea 内の多数のドック (pyqtgraph.dockarea.Dock) から構築しています。ただし、ドックを分離しているスプリッターをクリックしてドラッグしてドックのサイズを変更すると、ドックが突然消えるポイントまで簡単にドラッグできることに気付きました。それらがなくなった後、まだそこにあるスライダーをドラッグして再びスペースを作成すると、それらは再び表示されます。

たとえば、pyqtgraph に付属のドックエリアの例では、左側のパネルのスプリッターを下にドラッグすると、最終的に左下のドックが消えます。それを上にドラッグすると、再び表示されます。消えるプロセスがまったく起こらないようにするにはどうすればよいですか? すべてのドックが常に表示されるようにします。

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 に答える