Qt formlayout不垂直扩展qplaintextedit

Jon*_*sen 8 layout resize pyqt pyqt4 qplaintextedit

我很困惑为什么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_()
Run Code Online (Sandbox Code Playgroud)

下面是一个QPlainTextEdit小部件没有垂直调整大小的示例: QPlainTextEdit已添加到QFormLayout但未垂直调整大小http://s9.postimage.org/ejvmp1wtr/qplaintextedit_in_qformlayout_not_resize.jpg

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

谢谢.

ekh*_*oro 13

似乎默认情况下,a QFormLayout只会根据它们的大小调整其字段的高度sizeHint.

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

policy = widg.sizePolicy()
policy.setVerticalStretch(1)
widg.setSizePolicy(policy)
Run Code Online (Sandbox Code Playgroud)