2014-10-23 3 views
0

저는 PySide 및 pyqtgraph를 사용하여 응용 프로그램을 작성하고 단일 DockArea에서 여러 가지 도크 (pyqtgraph.dockarea.Dock)를 구성하고 있습니다. 그러나 나는 그들을 분리하는 스플리터를 클릭하고 드래그하여 도킹의 크기를 조정할 때 갑자기 사라지는 지점까지 아주 쉽게 드래그 할 수 있다는 것을 알았습니다. 사라진 후에도 여전히 슬라이더를 드래그하여 다시 공간을 만들면 다시 나타납니다.도크가 사라지는 지점까지의 크기 조절을 방지합니다.

예를 들어, pyqtgraph와 함께 제공되는 dockarea 예제에서 왼쪽 패널의 스플리터를 아래로 드래그하면 결국 왼쪽 하단 도킹 스테이션이 사라집니다. 다시 끌어다 놓으면 다시 나타납니다. 어떻게하면 사라지는 과정이 전혀 일어나지 않도록 할 수 있습니까? 모든 부두가 항상 보이기를 바랍니다.

pyqtgraph.dockarea 코드를 조사했지만 크기 조정 동작을 제어하는 ​​메서드를 찾을 수 없습니다. 이미 응용 프로그램에서 Dock을 하위 클래스로 만들었으므로 그렇게 쉽게 메서드를 수정할 필요가있는 경우.

업데이트이 : 아마

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

가장 쉬운 방법 :이 코드는 문제를 해결

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

답변

1

당신은 DockArea에서 QSplitters를 통해 붕괴 해제 할 수 있습니다 (아래 누가 복음의 답변을 참조) 모든 컨테이너에 영향을 미치려면 DockArea.makeContainer()을 확장해야합니다 (HContainer 및 VContainer는 QSplitter의 하위 클래스입니다).

+0

완벽한, 감사합니다! (첫 번째 pyqtgraph에 감사드립니다!) – kinverarity

관련 문제