PyQt4:根据QMainWindow的大小设置QGridLayout的大小
我正在用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_()
不过,要记住,控件默认有最小大小。所以它们不能缩小到这个最小值以下。如果你想改变这种行为,可以考虑设置你喜欢的最小大小。