《QT从基础到进阶·三十》QVariant的基础用法

news/2025/3/5 5:09:48/

很多时候,需要几种不同的数据类型需要传递,如果用结构体,又不大方便,容器保存的也只是一种数据类型,而QVariant则可以统统搞定。
QVariant可以保存QT和C++常用类型,如果是自定义类型,比如struct,class等需要注册自定义类型:
Q_DECLARE_METATYPE(MyClass)

对于支持的类型可以直接赋值:

//赋值
QVariant var;
var.setValue(12); //方式1
var.fromValue(12); //常用赋值  方式2//获取值
int v = var.toInt();       //获取int   方式1
QString s = var.toString();   //转成QString    方式2
int va = var.value<int>(); //函数模板形式获取值,在主要用在自定义数据类型获取   方式3

案例:

struct MyClass {int id;QString name;
};
Q_DECLARE_METATYPE(MyClass)MyClass myclass{10,"hua"};
QVariant var = QVariant::fromValue(myclass); //自定义类型转QVariant 
if (var.canConvert<MyClass>())            //canConvert判断QVariant是否可以转自定义类型
{MyClass myClass = var.value<MyClass>();int a = myClass.id;
}

保存指针:

//保存
QVariant var=QVariant::fromValue((void*)event);
//获取
QPaintEvent* e=(QPaintEvent*)var.value<void*>();

对于不支持的C++基础数据类型,如 short char,先通过toInt()转化为int类型,然后再将int转为其原本的数据类型。
在这里插入图片描述


http://www.ppmy.cn/news/1220493.html

相关文章

【数据处理】Python:实现求条件分布函数 | 求平均值方差和协方差 | 求函数函数期望值的函数 | 概率论

猛戳订阅&#xff01; &#x1f449; 《一起玩蛇》&#x1f40d; &#x1f4ad; 写在前面&#xff1a;本章我们将通过 Python 手动实现条件分布函数的计算&#xff0c;实现求平均值&#xff0c;方差和协方差函数&#xff0c;实现求函数期望值的函数。部署的测试代码放到文后了&…

贝加莱软件功能测试

通讯及稳定性测试 Profibus DP通讯、Modbus通讯、CANOPEN通讯测试 C1 C2 C3 测试目的 测试验证贝加莱控制系统各种现场总线通讯的性能及稳定性。验收标准 主站PLC可与现有总线仪表建立Profibus DP通讯、Modbus通讯或CANOPEN通讯&#xff0c;连续运行&#xff08;通讯状态应保…

大语言模型量化方法对比:GPTQ、GGUF、AWQ

在过去的一年里&#xff0c;大型语言模型(llm)有了飞速的发展&#xff0c;在本文中&#xff0c;我们将探讨几种(量化)的方式&#xff0c;除此以外&#xff0c;还会介绍分片及不同的保存和压缩策略。 说明&#xff1a;每次加载LLM示例后&#xff0c;建议清除缓存&#xff0c;以…

十八数藏:数字创新之美,文化传承的璀璨明星

在当代数字时代&#xff0c;十八数藏如同一颗璀璨之星&#xff0c;闪耀在文化传承的广袤天空。其数字创新之美&#xff0c;不仅在传统工艺中绽放&#xff0c;更为文化守护开辟了崭新的篇章。 十八数藏的数字创新&#xff0c;宛如一场艺术之舞。在传统工艺的基础上&#xff0c;数…

用照片预测人的年龄【图像回归】

在图像分类任务中&#xff0c;卷积神经网络 (CNN) 是非常强大的神经网络架构。 然而&#xff0c;鲜为人知的是&#xff0c;它们同样能够执行图像回归任务。 图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量&#xff08;我们试图预测的东西&#xff09;不是连续…

CTFhub-RCE-过滤空格

1. 查看当前目录&#xff1a;127.0.0.1|ls 2. 查看 flag_890277429145.php 127.0.0.1|cat flag_890277429145.php 根据题目可以知道空格被过滤掉了 3.空格可以用以下字符代替&#xff1a; < 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 $IFS在li…

阿里云ESSD云盘IOPS性能如何?

阿里云服务器ESSD云盘IOPS与PL等级有关&#xff0c;PL0最大IOPS可达10000&#xff0c;PL1 最大IOPS 50000&#xff0c;PL2 ESSD云盘IOPS最大和最小值100,000/24,872&#xff0c;阿里云服务器网aliyunfuwuqi.com分享ESSD云盘IOPS性能参数表&#xff1a; 阿里云ESSD云盘IOPS性能…

Web渗透测试工具的编写

预计更新 网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 Web渗透测试工具是一种用于自动化执行Web应用程序渗透测试的软件工具。这些工具可以帮助安全专业人员…