Qt 自定义消息 信号-槽函数

前提: 信号-槽函数中 qt中 信号是基本数据类型,如 int  double 等,我想传递一个自定义的结构体要如何做呢?

主要就是:先声明新结构体,再注册,然后按照如int类消息正常使用即可,

步骤如下

1. 头文件中

(1)添加头文件

#include <QMetaType>

(2)注册元对象 数据发送结构体--信号槽2024.6.1

Q_DECLARE_METATYPE(li_data)

注意: li_data是自定义的结构体

struct liv_data{
    double dwidth;
    double dheight;
}

(3)定义消息

signals:

    void send_data_signals(li_data);//2024.6.19

(4)定义槽函数

private slots:
    void get_data_signals(li_data);

2.cpp中

(1)构造函数中 

//需要注册结构体
    qRegisterMetaType<li_data>("li_data");
    connect(this, &CShoweUI::send_data_signals,
                this, &CShoweUI::get_data_signals);

然后就和正常的消息一样使用就行了。

(2)

void CShowUI::get_edata_signals(li_data src)
{
    ui->ang_label->setText(QString::number(src.dheight,'f',1));
    ui->ngxiang_label->setText(QString::number(src.dwidth,'f',1));
    //里程暂时先不显示
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值