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)