2012-11-16 6 views
8

QPlainTextEditQFormLayoutに追加すると、ウィジェットのサイズが垂直方向に変更されません。下のコードでは、テキストフィールドは水平方向に正しくスケールアップされますが、垂直方向にはスケールアップされません。Qt formlayoutが垂直に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ウィジェットの例である: QPlainTextEdit added to QFormLayout but not resizing vertically http://s9.postimage.org/ejvmp1wtr/qplaintextedit_in_qformlayout_not_resize.jpg

これはPyQtは4.5.2とPython 32ビット2.6を使用してWindows 7です。

ありがとうございました。

+0

私はLinuxとWinXPの両方で正反対の行動を取得します。テキストエディットは、どの設定が選択されていてもスペースを埋めるように垂直方向にリサイズします(例:[setFieldGrowthPolicy()](http://doc.qt.nokia.com/4.8-snapshot/qformlayout.html#fieldGrowthPolicy-prop)、[ expandingDirections()](http://doc.qt.nokia.com/4.8-snapshot/qlayoutitem.html#expandingDirections)など – ekhumoro

+0

あなたはQhバージョンを使用していますか? コードから取得した結果を示すサンプルイメージを投稿に追加しました。フィールドを拡大してそのウィジェットを埋め込むことがわかっていると思いますか? –

+0

画像は1000語の価値があります!私はあなたの問題を正しく理解していないように見えます。以下の私の解決策を見てください。 – ekhumoro

答えて

12

デフォルトでは、QFormLayoutはフィールドの高さのサイズをsizeHintに応じて変更するようです。

、この動作を変更する必要に応じてvertical stretchを調整するには:

policy = widg.sizePolicy() 
policy.setVerticalStretch(1) 
widg.setSizePolicy(policy) 
+0

パーフェクト!そして、私はsizePolicyについて新しいことを学んだ、ありがとう。 –

関連する問題