这篇文章主要讲解了“Qt的槽如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Qt的槽如何使用”吧!
一、建立槽和按钮之间的连接
connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数)
例子
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(showinfo()));
解释:
信号反发送者:pushButton(这是一个按钮),发送信号:clicked(点击按钮),信号接收者:this(本类),信号接收者的槽函数:showinfo(点击按钮后响应的函数)
二、槽函数的定义
(1)槽函数
protected slots:void showinfo();
(2)自定义带参数的槽函数
signals:void mysignal(); //自定义信号(不需要实现),发送信号emit mysignal()
槽函数应用例子:
在头文件中定义槽函数
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: 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
在源文件中建立按钮与槽函数之间的连接
#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);}
感谢各位的阅读,以上就是“Qt的槽如何使用”的内容了,经过本文的学习后,相信大家对Qt的槽如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!