3

Qt( Windows XP 32ビットのバージョン4.6で、Qt Creator 2.0.0でコンパイル)を使用していて、QWizardを動作させようとしています。

最初の問題

これまでのところ、QWizardには3つのQWizardPageがあります。各ページには、レイアウトとしてQVBoxLayoutが適用されています。私の最初のページのコンテンツは非常に小さいですが(3行のQLabelのみ)、何らかの理由で、QLabelと[<戻る]、[次へ>]、[キャンセル]ボタンペインの間にかなりの空白があります。各ページには、その中のコンテンツに基づいて最小限の空白を持たせたいです。以前は、QVBoxLayoutを親のないQWidget(それ自体のウィンドウ)に配置したとき、ウィンドウは常にQVBoxLayoutを修正するのに十分小さいだけでした。現在、余分な空白があります。QWizardPagesをできるだけ小さくするために、オフまたはオンにする必要があるオプションはありますか?

2番目の(そしてほとんどの場合最初の問題に関連している)問題

また、2ページ目は1ページ目よりもはるかに大きいので、2ページ目に戻って最初のページに戻ると、1ページ目は2ページ目と同じサイズを維持しますが、2ページ目にアクセスした後でなければなりません。これはバグですか?

私が行っている唯一のジオメトリ設定は、

move(50, 50);

QWizardコンストラクターで。サイズ変更はありません...明示的なものはありません。レイアウトに魔法をかけさせようとしています。

高度なご協力ありがとうございます。

4

1 に答える 1

1

この問題を修正するために、QWizardの子クラスを作成し、次のようなプライベートスロットを作成しました。

void ChildClass::fitContents(int id)
{
    adjustSize(); // this automagically resizes the window to fit the contents
}

そして、次のように、ページが変更されるたびに呼び出されるようにしました。

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
于 2010-08-17T17:51:41.910 に答える