PyQt4 QHBoxLayout单元格大小问题

时间:2015-10-15 03:22:56

标签: layout pyqt4

我使用PyQt4 QHBoxLayout创建一个带有乘法帧的窗口,这是我的代码部分

    def initUI(self):      

    hbox = QtGui.QHBoxLayout(self)

    topleft = QtGui.QFrame(self)
    topleft.setFrameShape(QtGui.QFrame.StyledPanel)

    topright = QtGui.QFrame(self)
    topright.setFrameShape(QtGui.QFrame.StyledPanel)

    bottom = QtGui.QFrame(self)
    bottom.setFrameShape(QtGui.QFrame.StyledPanel)

    splitter1 = QtGui.QSplitter(QtCore.Qt.Horizontal)
    splitter1.addWidget(topleft)
    splitter1.addWidget(topright)

    splitter2 = QtGui.QSplitter(QtCore.Qt.Vertical)
    splitter2.addWidget(splitter1)
    splitter2.addWidget(bottom)

    hbox.addWidget(splitter2)
    self.setLayout(hbox)

    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('QtGui.QSplitter')
    self.show()

但输出似乎有线,因为顶部和顶部框架被挤压,我想知道是否有任何解决这个问题,使顶部和顶部的高度与底部的高度相同。

enter image description here

1 个答案:

答案 0 :(得分:1)

来自Qt DocQSplitter有一个setSize方法:

  

void QSplitter::setSizes(const QList<int> & list)

     

将子窗口小部件各自的大小设置为给定的值   列表。

     

如果分割器是水平的,则值设置每个的宽度   小部件,以像素为单位,从左到右。如果分离器是垂直的,那么   每个小部件的高度从上到下设置。
  ...

此外,对于任何QWidget,您都可以使用setMinimumSize