9

我很困惑为什么QPlainTextEdit小部件在添加到QFormLayout时不会垂直调整大小。在下面的代码中,文本字段正确地水平放大,但不能垂直放大。

谁能解释这种行为并提供解决方案?我已经尝试了所有我知道的技巧,但无济于事。

from PyQt4 import QtGui

class Diag(QtGui.QDialog):

    def __init__(self, parent, *args, **kwargs):
        QtGui.QDialog.__init__(self, parent)
        layout = QtGui.QFormLayout(self)
        widg = QtGui.QPlainTextEdit(self)
        layout.addRow('Entry', widg)

if __name__ == '__main__': #pragma: no cover
    app = QtGui.QApplication([])
    window = Diag(None)
    window.show()
    app.exec_()

这是 QPlainTextEdit 小部件不垂直调整大小的示例: QPlainTextEdit 添加到 QFormLayout 但不垂直调整大小

这是在使用 PyQt 4.5.2 和 Python 32 位 2.6 的 Windows 7 上。

谢谢。

4

2 回答 2

14

似乎默认情况下, aQFormLayout只会根据它们的sizeHint.

要更改此行为,请根据需要调整垂直拉伸

policy = widg.sizePolicy()
policy.setVerticalStretch(1)
widg.setSizePolicy(policy)
于 2012-11-19T18:38:44.903 回答
0

您应该将对象设置在 formlayout 的最后一行(参见 QPlainTextEdit),其垂直拉伸因子不应为 0。

于 2018-12-23T20:26:10.207 回答