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";
}



Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐