2010-08-16 49 views
2

我正在使用Qt(版本4.6在Windows XP 32位和在Qt Creator 2.0.0編譯)並試圖讓QWizard工作。QWizardPages保留自己的最小尺寸

第一個問題

我在QWizard 3個QWizardPages至今。每個頁面都有一個QVBoxLayout,因爲它的佈局。我的第一頁有非常小的內容(只有三行QLabel),但由於某種原因,QLabel和「<返回」,「下一步>」和「取消」按鈕窗格之間有相當大的空白空間。我希望每個頁面都有基於其內容的最小量的空白空間。在過去,當我將QVBoxLayout放在一個無父QWidget(它自己的窗口)中時,窗口總是足夠小以修復QVBoxLayout。現在有額外的空白。是否有一些選項需要關閉或打開,以便QWizardPages儘可能小?

(和最有可能與第一)問題

而且,我的第二頁是不是我的第一頁大得多,所以當我到了第二頁,回來的第一頁,第一頁保持與第二頁相同的大小,但僅在我訪問了第二頁之後。這是一個錯誤?

唯一的幾何設定我做的是當我在QWizard構造做了

move(50, 50); 

。沒有調整...沒有明確的。我試圖讓佈局發揮他們的魔力。

感謝您的高級幫助。

回答

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)));