QVariant万能类型
文章平均质量分 66
证券指标
这个作者很懒,什么都没留下…
展开
-
QVariant 与 自定义类型 的转换
在使用VC、Delphi编写用户界面程序的时候,经常会把对象与控件的data域进行绑定,便于程序运行中读写提高效率。然而在Qt编程中怎么实现这个功能呢?比如将一个用户自定义的结构体与QComboBox控件的data绑定? Qt的联机帮助做的实在是差强人意,示例代码太少了。调试了半天,看到这篇文章给了我提示。主要步骤如下: 1、将自定义数据类型使用Q_DECLARE_METATY转载 2016-02-18 15:17:40 · 1407 阅读 · 0 评论 -
让QVariant认识 自定义结构体
如何在Qt中使用自定义数据类型Q_DECLARE_METATYPE,Qt自定义类型这里我们使用下面这个struct来做说明(这里不管是struct还是class都一样): struct Player { int number; QString firstName; QString lastName; }; 复制代码QVariant 为了能在QVa转载 2016-02-18 15:53:27 · 3640 阅读 · 0 评论 -
qt源码 QPoint如何转换为json
QString QSettingsPrivate::variantToString(const QVariant &v) { QString result; switch (v.type()) { case QVariant::Invalid: result = QLatin1String("@Invalid()");转载 2016-02-18 15:57:53 · 1458 阅读 · 0 评论 -
QVariant的使用
在有些情况下,我们希望把数据存储在一个变量中。例如,我有一个数组,既希望存整数,又希望存浮点数,还希望存string。对于Java来说,很简单,只要把这个数组声明成Object[]类型的。这是什么意思呢?实际上,这里用到的是继承。在Java中,int和float虽然是原生数据类型,但是它们都有分别对应一个包装类Integer和Float。所有这些Integer、Float和String都是继承于O转载 2016-02-18 15:59:07 · 4138 阅读 · 0 评论 -
QVariant 多态 绑定子类指针的值
首先必须先注册myStructor--使用Q_DECLARE_METATYPE(myStructor)。这是一个Macro--只能在全局中使用--否则出现错误。然后就可以按一般的方法来赋值了--取值代码为 v.value ();不过个人建议最好是绑定指针,即Q_DECLARE_METATYPE(myStructor*),因为这样对抽象数据类型也行。因为在某些场景中,我们需要绑定类对象的转载 2016-02-19 08:38:46 · 1196 阅读 · 0 评论 -
Q_DECLARE_METATYPE(MyClass)宏的位置:头文件,类声明后
2.自定义可存储QVariant中类型要使用一个自定义类型可用于QVariant中只需要在类声明的后面加上:Q_DECLARE_METATYPE(), struct MyClass{QString name;int age;}Q_DECLARE_METATYPE(MyClass)这样我们的类就可以像QMetaType::Type类一样使用没什么不同,有点不同转载 2016-02-19 08:42:41 · 4457 阅读 · 0 评论 -
QVariant 存储任意类型的源码
.............................. // 省略 default: void *ptr = QMetaType::construct(x->type, copy); if (!ptr) { x->type = QVariant::Invalid; } else {转载 2016-02-19 08:45:33 · 877 阅读 · 0 评论 -
Q_PROPERTY 类型是指针
Dynamic PropertiesQObject::setProperty() can also be used to add new properties to an instance of a class at runtime. When it is called with a name and a value, if a property with the given name e原创 2016-02-19 10:10:21 · 1064 阅读 · 0 评论 -
Q_PROPERTY 的属性名称 必须是确定的,如果需要多态,属性名称写基类的
JsonEntityPtr ts2 = person.property( "testStruct" ).valueJsonEntityPtr>();//属性名称是确定的,typedef JsonEntity* JsonEntityPtr;class Person : public JsonEntity{ Q_OBJECT Q_PROPERTY(Jso原创 2016-02-19 10:51:16 · 701 阅读 · 0 评论