2017-01-05 9 views
2

私は問題の解決策を見つけるのに苦労しています。 ウィンドウ内の2つのgraphicsceneに割り当てられたスペースを変更しようとしています。 正確です。私は2つのQGraphicsViewsを配置して何かを描画するQHBoxLayoutを持っています。これらの2つのシーンは並べて配置されます(垂直方向)。私がしたいのは、マウスで、2つのシーンの間をクリックして各ビューのスペースを調整することです。マウスを上に動かすと、上のシーンの高さは小さくなり、下のシーンの高さは高くなります。今では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

私は何をしたいことは、より多くのスペースを必要とするどのビューに応じて、中央を上下にある灰色のバーをクリックしてドラッグです。 誰かがそれについての解決策を持っているなら、それはいいと思います。 素敵な一日を!

答えて

1

QSplitterを使用します。

# 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

関連する問題