PyQt4:根据QMainWindow的大小设置QGridLayout的大小

时间:2011-10-01 08:31:34

标签: python qt pyqt qwidget

我正在用Python编写一个小Qt应用程序。我创建了QMainWindow,它有一个QGridLayout。在每个网格中我都添加了QTextBrowser Widget。我希望网格的左侧不超过窗口的25%。所以我将有两个QTextBrowser:一个是窗口宽度的25%,另一个是窗口宽度的75%。我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以通过为每个单元格指定setStretch()来指定相对宽度。它们将获得与给定拉伸成比例的尺寸。这是一个简单的示例,使右侧窗口小部件比左侧窗口小部件大3倍。

import sys
from PyQt4 import QtGui

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    Q = QtGui.QWidget()

    H = QtGui.QHBoxLayout()
    H.addWidget(QtGui.QTextBrowser())
    H.setStretch(0,1)
    H.addWidget(QtGui.QTextBrowser())
    H.setStretch(1,3)

    Q.setLayout(H)

    Q.show()

    app.exec_()

但是,请记住,窗口小部件默认具有最小尺寸。所以他们可以缩小到那个以下。如果您还想更改此行为,请考虑根据自己的喜好设置最小尺寸。