当前位置: 首页 > article >正文

qt信号槽复杂参数传递,以结构体为例

参考博客:QT中信号和槽传递复杂参数,以QMap为例(QVariant)_qt 信号发送qmap-CSDN博客

前面的步骤都差不多:

1、首先包含头文件:#include <QMetaType> , 在使用信号类(或主窗口类)的构造函数中,通过如下的方式注册数据类型:qRegisterMetaType<QVariant>("QVariant");

2、然后分别申明信号和槽函数,并建立连接:

创建信号:signals: void signalMsgBox(QVariant);

创建槽:private slots: void slotMsgBox(QVariant);

建立connect的连接

3、在发送信号的地方进行数据封装下:

struct Test;//结构体Test

QVariant dataVar; //申明通用数据对象

dataVar.setValue(Test); //数据封装下

emit signalMsgBox(dataVar); //发送信号

4、在槽函数中进行数据还原:

Test test = dataVar.value<Test>();//还原为原来的数据结构类型

注意一个点:Q_DECLARE_METATYPE(Test ),这个需要在使用的头文件最后注册下

注意里面放的是结构体的名字,例如:

class A

{

};

Q_DECLARE_METATYPE(Test )


http://www.kler.cn/a/507579.html

相关文章:

  • c#-Halcon入门教程——标定
  • 【redis】键的全局命令
  • 基于 STM32 的多功能时间管理器项目
  • 遗传算法 (Genetic Algorithm) 算法详解及案例分析
  • vue3使用vue-native-websocket-vue3通讯
  • 【Compose multiplatform教程】05 IOS环境编译
  • 递归40题!再见递归
  • React 中hooks之useReducer使用场景和方法总结
  • python学opencv|读取图像(三十六)(反)零值处理
  • springboot 利用html模版导出word
  • JavaScript笔记基础篇03——函数
  • HarmonyOS使用Grid网格实现计算器功能实现
  • AndroidStudio升级到2024.2.2项目AGP升级8.8.0版本记录
  • MyBatis(三)代理Dao方式的CRUD操作
  • uniapp 微信小程序 金额展示套餐
  • 【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)
  • 算法(蓝桥杯)贪心算法5——删数问题的解题思路
  • Titans Learning to Memorize at Test Time
  • AI编程工具使用技巧——通义灵码
  • 《火焰烟雾检测开源神经网络模型:智能防火的科技护盾》
  • Python调用go语言编译的库
  • Math Reference Notes: 矩阵基础
  • Android adb 调试,不在手机上点击信任 “允许usb调试” 即可连接的方式(手机需root)
  • 浅谈云计算20 | OpenStack管理模块(下)
  • CV与NLP经典大模型解读
  • RAG 切块Chunk技术总结与自定义分块实现思路