c – 将QPair转换为QVariant

c – 将QPair转换为QVariant,第1张

概述我有以下问题:我想通过TCP传输数据,并为此编写了一个函数.为了最大可重用性,函数模板是f(QPair< QString,QVariant>数据).第一个值(也称为QString)由接收器用作目标地址,第二个值包含数据.现在我想转移一个QPair< int,int> -value,但不幸的是我无法将QPair转换为QVariant.最佳的方法是能够传输一对int值而无需编写新函数(或使旧函数重载) 我有以下问题:我想通过TCP传输数据,并为此编写了一个函数.为了最大可重用性,函数模板是f(QPair< QString,QVariant>数据).第一个值(也称为QString)由接收器用作目标地址,第二个值包含数据.现在我想转移一个QPair< int,int> -value,但不幸的是我无法将QPair转换为QVariant.最佳的方法是能够传输一对int值而无需编写新函数(或使旧函数重载).在这种情况下,QPair的最佳替代方案是什么?解决方法 您必须使用特殊宏Q_DECLARE_MetaTYPE()来使QVariant系统可以使用自定义类型.
Please read the doc carefully了解它是如何工作的.

对于QPair,虽然它很简单:

#include <QPair>#include <QDeBUG>typedef QPair<int,int> MyType;    // typedef for your typeQ_DECLARE_MetaTYPE(MyType);       // makes your type available to QMetaType systemint main(int argc,char *argv[]){    // ...    MyType pair_in(1,2);    QVariant variant = QVariant::fromValue(pair_in);    MyType pair_out = variant.value<MyType>();    qDeBUG() << pair_out;    // ...}
总结

以上是内存溢出为你收集整理的c – 将QPair转换为QVariant全部内容,希望文章能够帮你解决c – 将QPair转换为QVariant所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1243116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存