9

QFormLayoutに追加されたときにQPlainTextEditウィジェットが垂直方向にサイズ変更されない理由がわかりません。以下のコードでは、テキスト フィールドは水平方向に正しく拡大されますが、垂直方向には拡大されません。

誰でもこの動作を説明して解決策を提供できますか? 私が知っているすべてのトリックを試してみましたが、役に立ちませんでした。

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 ウィジェットの例を次に示します。 QFormLayout に QPlainTextEdit が追加されましたが、垂直方向のサイズは変更されません

これは、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 に答える