connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数)
1、例子
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
解释:
信号反发送者:pushButton(这是一个按钮),发送信号:clicked(点击按钮),信号接收者:this(本类),信号接收者的槽函数:showinfo(点击按钮后响应的函数)
(1)槽函数
protected slots:
void showinfo();
(2)自定义带参数的槽函数
signals:
void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()
槽函数应用例子:
1、在头文件中定义槽函数
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include
-
- namespace Ui {
- class MainWindow;
- }
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- //槽函数声明
- protected slots:
- void showinfo();//槽函数
- void myslot();
-
- //自定义带参数的槽函数
- signals:
- void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()
- void sendNum(int num);
-
- private slots:
- void on_closbt_clicked();
- void getNum(int num);
-
- private:
- Ui::MainWindow *ui;
- };
-
- #endif // MAINWINDOW_H
2、在源文件中建立按钮与槽函数之间的连接
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include
- #include
- #include "form.h"
-
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //把按钮的信号与本类的showinfo槽函数关联
- connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
-
- //把本类的信号mysignal与本类的槽函数myslot()关联
- connect(this,SIGNAL(mysignal()),this,SLOT(myslot()));
- connect(this,SIGNAL(sendNum(int)),this,SLOT((int)));
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- //实现槽函数
- void MainWindow::showinfo()
- {
- qDebug()<<"信号与槽函数测试";
- //发送信号
- emit mysignal();
- }
-
- void MainWindow::myslot()
- {
- qDebug()<<"自定义信号触发";
- }
-
- void MainWindow::getNum(int num)
- {
- qDebug()<
- }
-
-
- void MainWindow::on_closbt_clicked()
- {
- emit sendNum(123);
- }
本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT图像,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓