1、自動連接
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { QPushButton *pushButton = new QPushButton(this); pushButton->setObjectName("TestButton"); ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_TestButton_clicked() { close(); }
如果槽函數命名方式為:on_控件名稱_clicked,則不需要再手動connect連接信號與槽函數,此時QT內部會有相應的機制,將控件與對應的槽函數關聯起來。
2、手動關聯
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { QPushButton *pushButton =new QPushButton(this); pp->setObjectName("TestButton"); ui->setupUi(this); connect(pp,SIGNAL(clicked()),this,SLOT(mySlot())); } Widget::~Widget() { delete ui; } void Widget::mySlot(){ qDebug() << "Hello World"; }
槽函數並不是按 on_控件名稱_clicked 方式命名的,此時想將控件與該槽函數關聯的話,可以用手動connect,讓它們關聯起來。
3、設計模式關聯
在QT Creator 的 design 模式下,點擊下圖中提示的按鈕,可以進入信號槽編輯模式,可直接在兩個控件之間拖動,在兩者添加信號槽關聯機制