QVariant类:
 #include "widget.h"
#include <QApplication>
#include <QDebug> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QVariant v();
qDebug()<<v.toInt(); QVariant w("How are you! ");
qDebug()<<w.toString(); QMap<QString,QVariant>map; map["int"]=;
map["double"]=709.709;
map["string"]="How are you! "; QColor c = QColor(,,);
map["color"]=(c); qDebug()<<map["int"]<< map["int"].toInt();
qDebug()<<map["double"]<< map["double"].toDouble();
qDebug()<<map["string"]<< map["string"].toString(); qDebug()<<map["color"]<< map["color"].value<QColor>();
/*
* map["color"]是一个QVariant对象,QVariant中没有提供转换QColor对象的方法
* 但是提供了 value模板方法来取得存放的任意类型数据:
* inline T value() const
* 也就是说 value是一个统用的方法(都叫模板了...)
* qDebug()<<map["int"]<< map["int"].toInt(); 等效于:
* qDebug()<<map["int"]<< map["int"].value<int>();
* 既然有了value方法了,为什么还要定义toInt方法? 猜想原因:
* 1、效率,可能toInt方法更加高效取得数据。
* 2、统一,其他类都有toInt方法,这里没有的话,有点不好意思吧
*/ QStringList sl; //定义字符串列表
/*
* class QStringList : public QList<QString>
*/
sl<<"A"<<"B"<<"C"<<"D"; QVariant slv(sl);//slv中存放的是字符串列表 if(slv.type()==QVariant::StringList)
{
QStringList list=slv.toStringList(); //取出QVariant对象中的数据——字符串列表
for(int i=;i<list.size();++i)
qDebug()<<list.at(i); //列表中的项
} return ;
}

QVariant类的更多相关文章

  1. QVariant类学习(非常强大的类型,甚至能处理QMap<QString ,QVariant>)

    详细描述: QVariant类作为一个最为普遍的Qt数据类型的联合. 因为c++禁止没有构造函数和析构函数的联合体,许多继承的Qt类不能够在联合体当中使用.(联合体当中的变量共用一个存储区),没有了联 ...

  2. Qt的QVariant类

    QStandardItemModel类中的函数 bool setData(const QModelIndex &index, const QVariant &value, int ro ...

  3. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  4. QVariant实质 (类似 C#中的装箱拆箱)

    QVariant是一种可以存储不同类型的数据结构,在很多场合这是很有用得为了达到这种目的,可以想象,该对象应该存储对象的类型信息,数据信息以及其他辅助详细考虑用途,这种对象必须支持对不同对象的存储,对 ...

  5. QVariant(相当于是Java里面的Object,起到一个数据类型“擦除”的作用,可以使用Q_DECLARE_METATYPE进行注册)

    =QVariant= [%这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是 ...

  6. python列表和QVariant

    pyqt中.要给QAbstractTableModel的setData函数传递一个list參数: [20,'00:00:19'] 涉及到QVariant和list的转换. 能够使用QVariant类中 ...

  7. Chapter2:Qt5模板库,工具类及控件

    2.1 字符串类 QString类保存16位Unicode值,提供了丰富的操作,查询和转换等函数.  (1):QString提供了一个二元的"+"操作符用于组合两个字符串  (2) ...

  8. QVariant(相当于是Java里面的Object,是万能的容器,但要注册)

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  9. 自定义数据类型使用QVariant转换的方法

    QVariant类型的放入和取出必须是相对应的,你放入一个int就必须按int取出,不能用toString(), Qt不会帮你自动转换. 数据核心无非就是一个 union,和一个标记类型的type:传 ...

随机推荐

  1. LeetCode【110. 平衡二叉树】

    对于平衡二叉树,就是左右深度相差1 就可以另外弄一个函数,计算深度,然后, 在原函数上进行比较深度是否相差1,再输出true or false. 至于迭代就可以,比较完左右节点,再比较各自的左右节点. ...

  2. 开源邮件系统Zimbra Collaboration – Open Source Edition

    https://www.zimbra.com/downloads/zimbra-collaboration-open-source/ Zimbra Collaboration – Open Sourc ...

  3. NLP一些工程应用模型

    发现一个DL的博客,对文章分类归纳做的比较好:第三篇文章中的模型可以重点参考 “自然语言学习资料的汇总” 综述 | 一文读懂自然语言处理NLP(附学习资料) 用深度学习(CNN RNN Attenti ...

  4. Spring boot 的 properties 属性值配置 application.properties 与 自定义properties

    配置属性值application.properties 文件直接配置: com.ieen.super.name="MDD" 自定义properties文件配置:src/main/r ...

  5. WebApp的自动测试工具: protractor和selenium

    Protractor是Selenium的扩充,支持Angularjs element(by.css('my-css')).click(); 一.用by的各种Locator定位元素 选中1个元素: el ...

  6. 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。

    几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...

  7. make apr-util 报错 all recurisive

    安装expat库: yum install expat-devel 再次make 即可.

  8. matlab-单位圆内射线数次反射

    转载自 https://zhidao.baidu.com/question/2268408219692883828.html 先贴代码和放图,然后我再做出一点解释(其实只是觉得这个思路好厉害,所以想保 ...

  9. 监控linux服务器是否能登陆 邮件报警

    import smtplibfrom email.mime.text import MIMETextimport telnetlibimport timedef SendEmail(fromAdd,t ...

  10. selenium与chrome浏览器及驱动的版本匹配

    用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...