qt-QVariant-共用体
需要 #include<QVariant>
QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++共用体 union,一个QVariant 对象,一次只能保存一个单一类型的值。该类封装了 Qt 中常用的类型,对于QVariant 不支持的类型 ( 比如用户自定义类型 ) ,则需要使用Q_DECLARE_METATYPE( Type )宏进行注册
QVariant 拥有常用类型的单形参构造函数,因此可把这些常用类型转换为 QVariant 类型,同时 QVariant 还重载了赋值运算符,因此可把常用类型的值直接赋给 QVariant 对象。注:由 C++语法可知,单形参构造函数可进行类型转换
注意:QVariant 没有 char 类型的构造函数,若使用 char 值会被转换为对应的 int 型
QVariant v(1); //调用 QVariant(int )构造函数创建一个 QVariant 类型的对象,并把数值 1 保存到 v 中 //QVariant(int, 1) v=2.2; //调用 QVariant 的赋值运算符,把值 2 保存在 v 之中,因为 QVariant 是类似于共用体的类,因此同一时间只会保存一个值 //QVariant(double, 2.2) QString str=v.typeName(); //返回v中保存数据的类型 //"double" v='a'; //QVariant 没有专门的char构造函数,此处的字符a会被转换为 int 型,因此 v中存储的是数值 97,而不是字符 a //QVariant(int, 97) int n=v.value<int>(); //以int类型返回v中的值 char ch=v.value<char>(); //以char类型返回v中的值 //a QChar chh=v.toChar(); //以QChar类型返回v中的值 //a str=v.toString(); //把v中的数据转化为QString字符串后返回 //97 str=v.typeToName(v.type()); //type()返回存储值的枚举形式表示的类型,typeToName()把它转化为QString字符串 //"int" v.setValue('b'); //设置值 //QVariant(char, b) //若是使用 QVariant 构造函数和直接赋值 char 型字符,此处会输出 int,这是 setValue 与他们的区别 //通过setValue能保留数据的原类型 qDebug()<<v; qDebug()<<str;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2019-09-19 qt5--定时器
2019-09-19 qt5--QLabel标签控件