qt信号与槽之间自定义数据结构2

一、qt信号与槽之间有很多数据结构是不能直接传递的,如QVector, 需要自己进行数据的包装,让qt识别为通用的数据类型QVariant

1) 通用数据的申明与注册 a. 声明QVector为通用数据类型:

Q_DECLARE_METATYPE(QVector<int>)

b.将通用数据注册到信号槽机制当中

qRegisterMetaType<QVariant>(“QVariant”);

2) 信号与槽函数

signals: void setStableChnsSignal(QVariant data); private slots: void setStableChnsSLot(QVariant data);

3)建立信号与槽连接

connect(this, SIGNAL(setStableChnsSignal(QVariant)), this, SLOT(setStableChnsSLot(QVariant)));

4)发送信号数据的包装

QVariant _QVariant; _QVariant.setValue(chns); emit setStableChnsSignal(_QVariant);

5)槽函数的数据解析

void setStableChnsSLot(QVariant data) { QVector<int> chns = data.value<QVector <int>>(); }

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:qt信号与槽之间自定义数据结构2 https://www.yhzz.com.cn/a/13512.html

上一篇 2023-05-11
下一篇 2023-05-11

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。