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

0 投票
1 回答
3343 浏览
提问于 2025-04-17 03:28

我正在用Python写一个小的Qt应用程序。我创建了一个QMainWindow,并在里面放了一个QGridLayout。在每个网格里,我添加了一个QTextBrowser控件。我想让网格的左边部分宽度不超过窗口的25%。也就是说,我会有两个QTextBrowser:一个占窗口宽度的25%,另一个占75%。我该怎么做呢?谢谢!

1 个回答

2

你可以通过给每个单元格设置一个拉伸比例来指定相对宽度,使用的方法是 setStretch()。这样它们的大小就会按照你设定的比例来调整。下面是一个简单的例子,让右边的控件比左边的控件大三倍。

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_()

不过,要记住,控件默认有最小大小。所以它们不能缩小到这个最小值以下。如果你想改变这种行为,可以考虑设置你喜欢的最小大小。

撰写回答