2017-01-05 4 views
2

문제점에 대한 해결책을 찾기 위해 애 쓰고 있습니다. 윈도우에서 두 개의 graphicscene에 할당 된 공간을 수정하려고합니다. 정확합니다. 거기에 QGraphicsViews 두 개를 배치하여 QHBoxLayout을 배치했습니다. 이 두 장면은 나란히 (세로로) 배치됩니다. 내가 뭘하고 싶은지는 마우스로 두 장면 사이를 클릭하여 각보기의 공간을 조정하는 것입니다. 마우스를 위로 움직이면 상단의 장면은 작은 높이가되고 하단의 장면은 더 큰 높이가됩니다. 마우스로 QHBoxLayout 및 QGraphicsView 크기를 동적으로 조정하는 방법은 무엇입니까? (Python, Pyqt4)

# -*- coding: utf-8 -*- 
from __future__ import absolute_import 
from __future__ import division 
from __future__ import print_function 
from __future__ import unicode_literals 

from PyQt4 import QtGui 
import sys 

class SurfViewer(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(SurfViewer, self).__init__() 

     # General Window 
     self.centralWidget = QtGui.QWidget() 
     self.setCentralWidget(self.centralWidget) 
     self.mainHBOX_param_scene = QtGui.QHBoxLayout() 
     # list group view side 
     self.plotview = QtGui.QGroupBox("Group of views") 
     self.layout_plotview = QtGui.QVBoxLayout() 
     # views 
     self.mascenegrid = QtGui.QGraphicsView(self) 
     self.mascenelfp = QtGui.QGraphicsView(self) 
     # add widjets 
     self.layout_plotview.addWidget(self.mascenegrid) 
     self.layout_plotview.addWidget(self.mascenelfp) 
     # set layout 
     self.plotview.setLayout(self.layout_plotview) 
     self.mainHBOX_param_scene.addWidget(self.plotview) 
     self.centralWidget.setLayout(self.mainHBOX_param_scene) 


if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    ex = SurfViewer(app) 
    ex.show() 
    sys.exit(app.exec_()) 

그래서 나는이 결과를 얻을 : 지금

나는 아래의 코드가 있습니다. 내가하고 싶은 무엇

code result

클릭하고 더 많은 공간을 필요로 볼 중앙 위쪽 또는 아래쪽에 따라에있는 회색 막대를 드래그합니다. 누군가가 그 해결책을 가지고 있다면 그것은 좋을 것입니다. 좋은 하루 되세요! QSplitter

답변

1

사용 :

# add widgets 
    self.splitter = QtGui.QSplitter(QtCore.Qt.Vertical) 
    self.splitter.addWidget(self.mascenegrid) 
    self.splitter.addWidget(self.mascenelfp) 
    self.layout_plotview.addWidget(self.splitter) 
+0

잘 생긴, 즉 무엇을 필요 정확히! – ymmx