C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽的关联

时间:2023-03-08 15:48:06
C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽的关联

Qt信号与槽的三种关联方法:
1.设计界面关联,编辑信号/槽,自动关联

C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽的关联
2.手动关联
(1).头文件中定义槽

-----mywidget.h-----

 #ifndef MYWIDGET_H
 #define MYWIDGET_H

 #include <QWidget>

 namespace Ui {
 class MyWidget;
 }

 class MyWidget : public QWidget
 {
     Q_OBJECT

 public:
     );
     ~MyWidget();

 private:
     Ui::MyWidget *ui;

 public slots:
     void onBtn1();

 };

 #endif // MYWIDGET_H

(2).C++类中实现槽

(3).C++类构造函数关联槽

-----mywidget.cpp-----

 #include "mywidget.h"
 #include "ui_mywidget.h"
 #include <QDialog>

 MyWidget::MyWidget(QWidget *parent) :
     QWidget(parent),
     ui(new Ui::MyWidget)
 {
     ui->setupUi(this);
     connect(ui->btn1, SIGNAL(clicked()), this, SLOT(onBtn1()));
 }

 void MyWidget::onBtn1()
 {
     QDialog * dlg = new QDialog(this);
     dlg->show();
 }

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

3.自动关联
(1).头文件中定义槽,槽名"on_组件名_信号名"(Ctrl+Shift+R可以批量重命名)
(2).C++类中实现槽

C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽的关联