QT学习之自定义信号
·
1、创建一个按钮
我们先创建一个MSignal工程项目,并在ui界面拖入一个按钮;然后转到槽函数选择clicked(如图)

2、定义一个信号
在类中定义一个信号
signals:
void msignal();
3、定义一个槽函数
在类中定义一个print的槽函数,并实现
void MSignal::print()
{
qDebug()<<"Get a signal";
}
4、关联信号槽函数
connect(this,&MSignal::msignal,this,&MSignal::print);
5、完整代码
msignal.h文件
#ifndef MSIGNAL_H
#define MSIGNAL_H
#include <QMainWindow>
#include <QtDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class MSignal; }
QT_END_NAMESPACE
class MSignal : public QMainWindow
{
Q_OBJECT
public:
MSignal(QWidget *parent = nullptr);
~MSignal();
signals:
void msignal();
private slots:
void on_pushButton_clicked();
void print();
private:
Ui::MSignal *ui;
};
#endif // MSIGNAL_H
msignal.cpp文件
#include "msignal.h"
#include "ui_msignal.h"
MSignal::MSignal(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MSignal)
{
ui->setupUi(this);
connect(this,&MSignal::msignal,this,&MSignal::print);
}
MSignal::~MSignal()
{
delete ui;
}
void MSignal::on_pushButton_clicked()
{
emit msignal();
}
void MSignal::print()
{
qDebug()<<"Get a signal";
}
main.cpp文件
#include "msignal.h"
#include "ui_msignal.h"
MSignal::MSignal(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MSignal)
{
ui->setupUi(this);
connect(this,&MSignal::msignal,this,&MSignal::print);
}
MSignal::~MSignal()
{
delete ui;
}
void MSignal::on_pushButton_clicked()
{
emit msignal();
}
void MSignal::print()
{
qDebug()<<"Get a signal";
}
更多推荐

所有评论(0)