2013-05-15 5 views
11

Qt5.0.1でサインインフォームを作成しようとしています。私は2つのウィジェットを作成し、その中に自分のラベルと行の編集を入れ、他のものには私のボタンを入れました。次に、これらの2つのウィジェットをQVBoxLayoutに配置しますが、レイアウト内の2つのウィジェットの間のスペースは目的以上のものです。 setSpacingとsetContentsMarginを試しましたが、このプログラムでは機能しませんでした。QVBoxLayoutのウィジェット間のスペース

http://i.stack.imgur.com/R33MM.png

私は何をすべき2つのウィジェット間の空間に変え

vhandle->setSpacing(0); 
vhandle->setMargin(0); 
vhandle->setContentsMargins(0,0,0,0); 
vhandle->addWidget(handle,0, Qt::AlignTop); 
vhandle->addWidget(handle2,0, Qt::AlignTop); 

何も?

答えて

11

問題はQVboxLayoutのマージン設定ではなく、コンテナウィジェットのレイアウトのマージン設定とQVBoxLayoutのスペーシング設定です。すでにスペースを0に設定していますが、これは問題ありません。また、upperWidgetLayoutが上のウィジェットと下ウィジェットのlowerWidgetLayoutレイアウトのレイアウトであると仮定し、

upperWidgetLayout->setContentsMargins(-1, -1, -1, 0); 
lowerWidgetLayout->setContentsMargin(-1, 0, -1, -1); 

を試してみてくださいこれは、上のウィジェットのレイアウトの下の余白との下位ウィジェットのレイアウトの上マージンを設定し、 0二つのウィジェットのコンテンツ間のスペースがないように:

Dialog Layout

一時的に様々なウィジェットの着色は、通常、このような問題を追跡するための良い方法です。また、Qt Designerを使用してUIを設計し、生成されているソースコードを確認することもできます(または、プロジェクト内で.uiファイルを直接使用することもできます)。

関連する問題