2013-04-11 55 views
0

我想創建每當SIGNAL(clicked())從特定通過按鈕發出一個SLOT()創建一個QPushButton(或QLineEdit的)對我的GUI窗口小部件(在同一框架上)的新按鈕我的桂。例如:當我按下「退出」時,在同一幀上出現一個新的「謝謝」按鈕。QT:如何創建當信號被髮射

那麼,如何使用C++代碼而不是Qt-GUI工具創建新的PushButton?

+3

您可能已經創建的,不可見的按鈕,當一些事件發生時設置可見... – Sam 2013-04-11 20:21:44

+1

看一看了'由Qt生成的ui _ *。h'-文件。你會看到如何將這些神奇的Qt-GUI的東西轉換爲代碼。 – Misch 2013-04-11 20:22:25

+1

在「退出」按鈕的處理程序中創建QPushButton類的對象。並使用connect()爲該新按鈕分配一個新插槽。 – 2013-04-11 20:22:58

回答

3

當然,你可以創建的小部件,如無所見即所得工具(如QtDesinger)

編寫代碼「退出」按鈕的槽內按鈕:

void ThisWindowClass::exitClicked() 
{ 
    // ... 
    QPushButton *thanksButton = new QPushButton(this /*parent widget*/); 
    connect(thanksButton, SIGNAL(clicked(bool)), this, SLOT(thanksClicked(bool))); 
    // ... 
} 

而且你必須有一個插槽命名方法thanksClicked

void ThisWindowClass::thanksClicked(bool checked) 
{ 
// Do something 
} 
+1

我也會建議'update()'調用。 – Constantin 2013-04-11 20:40:03