Qt自定义信号槽代码实现

Qt自定义信号槽代码实现

目录

Qt自定义信号槽代码实现

1、自定义信号

2、自定义槽

3、使用自定义信号

4、关联自定义信号和槽

5、参考核心代码:

下载地址:


以下是一个基于C++的Qt 信号槽的演示:

源码下载地址https://download.youkuaiyun.com/download/mars1199/88519983

1、自定义信号

        需要使用关键字 signals,在类中添加如下效果

signals:
    void mySignal(); // 信号只声明,不实现

2、自定义槽

        需要使用 权限+关键字slots,在类中添加如下效果

private slots:
    void mySlot(); // 槽需要声明+实现

        槽的功能实现:

void TestMainWindow::mySlot()
{
    qDebug()<<"Hello World Qt"; // 在应用程序输出中查看输出结果
}

3、使用自定义信号

        只需要在按钮的槽中发射信号即可 使用关键字 emit 信号()

emit mySignal(); // 发射信号

4、关联自定义信号和槽

        使用的是connect函数,使用宏的写法

connect(this,SIGNAL(mySignal()),this,SLOT(mySlot())); // 信号槽关联

5、参考核心代码:

头文件的代码:

#include <QMainWindow>

namespace Ui {
class TestMainWindow;
}

class TestMainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit TestMainWindow(QWidget *parent = 0);
    ~TestMainWindow();
signals:
    void mySignal(); // 信号只声明,不实现

private slots:
    void mySlot(); // 槽需要声明+实现

    void on_pushButton_clicked();

private:
    Ui::TestMainWindow *ui;
};

源文件的核心代码:

#include "testmainwindow.h"
#include "ui_testmainwindow.h"
#include <QDebug> // Qt打印输出的头文件

TestMainWindow::TestMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::TestMainWindow)
{
    ui->setupUi(this);
    connect(this,SIGNAL(mySignal()),this,SLOT(mySlot())); // 信号槽关联
}

TestMainWindow::~TestMainWindow()
{
    delete ui;
}

void TestMainWindow::mySlot()
{
    qDebug()<<"Hello World Qt"; // 在应用程序输出中查看输出结果
}

void TestMainWindow::on_pushButton_clicked()
{
    emit mySignal(); // 发射信号
}

6、运行效果如下:

下载地址:

完整代码下载地址:             https://download.youkuaiyun.com/download/mars1199/88519983

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五木大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值