connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数),今天小编就来聊一聊关于qt中如何定义槽?接下来我们就一起去研究一下吧!

qt中如何定义槽(QT中槽的使用)

qt中如何定义槽

一、建立槽和按钮之间的连接

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()

【领更多Qt学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→Qt开发进阶技术栈学习路线和资料

槽函数应用例子:

1、在头文件中定义槽函数

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> 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 <QDebug.h> #include <QtWidgets/QStackedLayout> #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()<<num; } void MainWindow::on_closbt_clicked() { emit sendNum(123); }

,