2013-05-07 218 views
0

我正在嘗試做一些看起來很簡單的事情,但我無法讓它工作。我想在我的QWizard中製作更大的按鈕。以下是代碼:更改QWizard按鈕大小

#include "wizard.h" 
#include "ui_wizard.h" 
#include "QAbstractButton" 
Wizard::Wizard(QWidget *parent) : 
    QWizard(parent), 
    ui(new Ui::Wizard) 
{ 
    ui->setupUi(this); 
    QRect rect = this->button(QWizard::NextButton)->geometry(); 
    this->button(QWizard::NextButton)->setGeometry(rect.x(), rect.y(), rect.width(), 40); 

    rect = this->button(QWizard::CancelButton)->geometry(); 
    this->button(QWizard::CancelButton)->setGeometry(rect.x(), rect.y(), rect.width(), 40); 

    rect = this->button(QWizard::BackButton)->geometry(); 
    this->button(QWizard::BackButton)->setGeometry(rect.x(), rect.y(), rect.width(), 40); 

} 

Wizard::~Wizard() 
{ 
    delete ui; 
} 

此代碼不執行任何操作。是否有可能改變按鈕的幾何形狀?或者它被禁止?

謝謝

回答

1

更好的是使用QSS(Qt樣式表)自定義用戶界面。您可以使用QApplication::setStyleSheet()來閱讀您的qss文件併爲整個應用程序設置樣式表。

你也可以編程設置qss(不是最好的實踐)。

setStyleSheet("QAbstractButton { height: 50px }"); 

什麼設置窗口小部件上所有按鈕的高度。

在最壞的情況下,你可以試試這個:

button(QWizard::CancelButton)->setStyleSheet("height: 50px"); 
+0

賓果!這兩個解決方案都很完美非常感謝 – peterphonic 2013-05-07 19:14:18

+0

其實,剛發現當我的QWizard在AeroStyle中時,setStyleSheet不起作用。 setStyleSheet適用於所有帶有modernStyle的按鈕。任何想法? – peterphonic 2013-05-07 19:32:10