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

Posted

技术标签:

【中文标题】PyQt4:根据 QMainWindow 的大小设置 QGridLayout 的大小【英文标题】:PyQt4: set size of QGridLayout depending on size of QMainWindow 【发布时间】:2011-10-01 08:31:33 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您可以通过使用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_()

但是,请记住,小部件默认具有最小尺寸。所以他们可以缩小到低于这个值。如果您还想改变这种行为,请考虑根据自己的喜好设置最小尺寸。

【讨论】:

以上是关于PyQt4:根据 QMainWindow 的大小设置 QGridLayout 的大小的主要内容,如果未能解决你的问题,请参考以下文章

从 QWidget (PyQt4) 调用 QMainWindow 中的方法/属性

QListView 不接受使用 Python PyQt4 在 QMainWindow 中的丢弃

QMainWindow :根据屏幕大小设置小部件大小

根据 QMainWindow 的大小调整 QWebView 和 QMessagebox 的大小

PyQt4工具栏

PyQt4中的第一个窗口