2012-09-19 72 views
1

我試圖使用一個形狀改變對話框,即當我點擊一個按鈕時,對話框的大小應該變大並帶有額外的細節。爲了做到這一點,我在按鈕上寫了下面的代碼:形狀改變對話框

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), 
    ui->sgroupBox, SLOT(setVisible(bool))); 

但是我的對話框沒有發生變化。在這種情況下我該怎麼做。

我通過使用hide()函數將它們放置在網格中來隱藏額外的細節。額外的細節正在隱藏,但小部件的大小沒有得到改變。

請幫我解決

+0

也許你的對話框不包含佈局,當它們的內容出現在屏幕上時,它可以提供自動調整大小。 –

回答

0

如果我正確理解你的問題你想點擊一個按鈕,在用戶界面後,調整您的QDialog的盒子?

由於QDialog繼承自QWidget,因此您可以調用QWidget :: resize(int width,int height)方法。

所以,現在,爲了使QDialog在您按下按鈕時增長,您只需將切換的(bool)信號連接到一個然後調用調整大小的插槽即可。

即。

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), whateverClassManagesYourQDialog, onButtonToggled(bool)); 

然後實現類,管理您的QDialog的這個槽: 即。

// This is a slot in your class which implements QDialog 
whateverClassManagesYourQDialog::onButtonToggled(bool toggledState){ 
    ui->sGroupBox.setVisible(toggledState); // This will show or hide sGroupBox 
    resize(someIncrement,someIncrement); // This will grow your QDialog 
}