QT基礎(四)訊號和槽
阿新 • • 發佈:2018-12-18
什麼是訊號和槽?訊號和槽的作用
訊號和槽都是函式,比如按下視窗上的一個按鈕後想要彈出一個對話方塊,那麼就可以將這個按鈕的單擊訊號和我們定義的槽關聯起來,在這個槽中可以建立一個對話方塊,並且顯示它。這樣,當單擊這個按鈕時就會發射訊號,進而執行我們的槽來顯示一個對話方塊
接下來用訊號和槽的機制建立一個專案。先看看該專案的作用:點選“顯示子視窗”會彈出小的視窗。
專案編寫過程(自動關聯方式):
(1)接著上一個mywidget1專案寫。雙擊mywidget.ui檔案(執行結果)新增Label,編輯文字“我是主介面”。加Push Button,編輯“顯示子視窗”。注意:這裡將Push Button的objectName改為showChildButton。
(2)在mywidget.h檔案中MyWidget類宣告的最後新增槽的宣告:
public slots:
void showChildDialog();
(3)在.cpp檔案中編輯showChildDialog()槽的實現:
void MyWidget::showChildDialog()
{
QDialog *dialog = new QDialog(this);
dialog ->show();
}
(4)修改MyWidget類的建構函式:
MyWidget::MyWidget(QWidget *parent) : QWidget(parent), //mywidget類的建構函式。 ui(new Ui::MyWidget) { ui->setupUi(this); connect(ui->showChildButton,&QPushButton::clicked, this,&MyWidget::showChildDialog); }
connect()函式將按鈕的單擊訊號clicked()與新建的槽關聯。 發射訊號的物件:showChildButton;發射的訊號:QPushButton 接收訊號的物件:MyWidget ;執行的槽 :showChildDialog。