1. QVariant类:
  1. #include "widget.h"
  2. #include <QApplication>
  3. #include <QDebug>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. QApplication a(argc, argv);
  8. QVariant v();
  9. qDebug()<<v.toInt();
  10.  
  11. QVariant w("How are you! ");
  12. qDebug()<<w.toString();
  13.  
  14. QMap<QString,QVariant>map;
  15.  
  16. map["int"]=;
  17. map["double"]=709.709;
  18. map["string"]="How are you! ";
  19.  
  20. QColor c = QColor(,,);
  21. map["color"]=(c);
  22.  
  23. qDebug()<<map["int"]<< map["int"].toInt();
  24. qDebug()<<map["double"]<< map["double"].toDouble();
  25. qDebug()<<map["string"]<< map["string"].toString();
  26.  
  27. qDebug()<<map["color"]<< map["color"].value<QColor>();
  28. /*
  29. * map["color"]是一个QVariant对象,QVariant中没有提供转换QColor对象的方法
  30. * 但是提供了 value模板方法来取得存放的任意类型数据:
  31. * inline T value() const
  32. * 也就是说 value是一个统用的方法(都叫模板了...)
  33. * qDebug()<<map["int"]<< map["int"].toInt(); 等效于:
  34. * qDebug()<<map["int"]<< map["int"].value<int>();
  35. * 既然有了value方法了,为什么还要定义toInt方法? 猜想原因:
  36. * 1、效率,可能toInt方法更加高效取得数据。
  37. * 2、统一,其他类都有toInt方法,这里没有的话,有点不好意思吧
  38. */
  39.  
  40. QStringList sl; //定义字符串列表
  41. /*
  42. * class QStringList : public QList<QString>
  43. */
  44. sl<<"A"<<"B"<<"C"<<"D";
  45.  
  46. QVariant slv(sl);//slv中存放的是字符串列表
  47.  
  48. if(slv.type()==QVariant::StringList)
  49. {
  50. QStringList list=slv.toStringList(); //取出QVariant对象中的数据——字符串列表
  51. for(int i=;i<list.size();++i)
  52. qDebug()<<list.at(i); //列表中的项
  53. }
  54.  
  55. return ;
  56. }

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. SSM框架-MyBatis框架数据库的增删查改操作

    话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:

  2. let const区别!

    这次做项目在申明变量的时候用到let const 总结下这两个区别 : 首先 let与const都是只在声明所在的块级作用域内有效. let声明的变量可以改变,值和类型都可以改变,没有限制.const ...

  3. 关于vim的常用操作

    vim常用操作和使用技巧 vi是linux与unix下的常用文本编辑器,其运行稳定,使用方便,本文将分两部分对其常用操作技巧和配置进行阐述,其中参考了网上的一些文章,对作者表示感谢 PART1 操作技 ...

  4. 删除链表的倒数第N个节点

    题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后 ...

  5. (Python基础)字典的使用

      以下代码是字典的查,增,改,删的基本使用方法. #-*-coding:utf-8-*- _author_: Keep #字典是无序的 info = { ':'张飞', ':'刘备', ':'关羽' ...

  6. RF:win10跑用例过程中有中文日志会显示非中文

    问题:RobotFramework在win10跑用例过程中有中文日志会显示非中文,如截图: 解决:  C:\Python27\Lib\site-packages\robot\utils\unic.py ...

  7. !!常用HTML代码

    META: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> “IE=e ...

  8. 关于No qualifying bean of type [XXX.XXX] found for dependency 的一次记录

    异常开始于spring+springmvc+mybatis 注解配置,启动tomcat服务器出现No qualifying bean of type [com.***.service] found f ...

  9. Hive 特殊日期获取 tips

    获取当前日期 SELECT CURRENT_DATE, CURRENT_TIMESTAMP, from_unixtime(unix_timestamp()); 上个月1号 concat(substr( ...

  10. Flask对数据库的操作-----

    首先得做好做基本的框架 # -*- encoding: utf-8 -*- from flask import Flask,render_template #导入第三方连接库sql点金术 from f ...