14

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

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

しかし、2 つのウィジェット間の空間は何も変化しませんでした:

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

私は何をすべきか?

4

2 に答える 2

18

問題は の余白設定ではなく、QVboxLayoutコンテナ ウィジェットのレイアウトの余白設定と QVBoxLayout の間隔設定です。すでに間隔を 0 に設定していますが、これで問題ありません。upperWidgetLayoutまた、上ウィジェットのレイアウトと下ウィジェットのレイアウトだと仮定してlowerWidgetLayout、試してみます

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

これにより、上のウィジェットのレイアウトの下マージンと下のウィジェットのレイアウトの上マージンが 0 に設定され、2 つのウィジェットのコンテンツ間にスペースがなくなります。

ダイアログのレイアウト

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

于 2013-05-15T18:55:57.023 に答える