【QT学习】自定义结构体跟QVariant之间的转换

说明:之所以自定义的结构体跟QVariant之间进行转换主要是因为qt中变量的传递以及使用主要是以QVariant来进行的,统购转换可以实现变量传递,传递完成后再转成结构体,适用于qtwidget。

(1)结构体跟QVariant之间的转换

struct tytemp
{
    unsigned int target;
    unsigned int current;
};


Q_DECLARE_METATYPE(tytemp)



/*将结构体变成QVariant*/
QVariant temp1;
tytemp info;
info.target  = 90;
info.current = 100;
temp1 = QVariant::fromValue(info);

/*将QVariant变成结构体*/
tytemp tempinfo= temp1.value<tytemp>()

(2)QVariant跟list之间的转换

任何的qt的类型要转成QVariant都需要先看下qt的帮助文档,查看该qt类型是否是一个基本的类型。例如

QVariantList--实际上就是--》QList<QVariant>
QVariantMap--实际上就是--》QMap<QString, QVariant>

 将一个QList转成一个QVariant类型:

Qlist<QVariant> list;
list<<QVariant::fromValue(90)<<QVariant::fromValue(89)<<QVariant::fromValue(67);
QVariant temp1;
temp1 = QVariant::fromValue(list);

信号槽之间传递也可直接使用结构体:

https://mp.csdn.net/postedit/88699038

注:本来想将结构体变成QVariant之后,传递到qml中使用,发现不可行。

转自:

https://www.cnblogs.com/lvdongjie/p/4965801.html

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值