using of Qvariant
Posted countryboy666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了using of Qvariant相关的知识,希望对你有一定的参考价值。
#include <QApplication>
#include <QDebug>
#include <QPaintEvent>
//The QVariant class acts like a union for the most common Qt data types.。
//Q_DECLARE_METATYPE(class or struct)
struct Myclass
int id;
QString name;
;
//QVariant 可以保存很多Qt的数据类型,包括QBrush、QColor、QCursor、QDateTime、QFont、QKeySequence、 QPalette、QPen、QPixmap、QPoint、QRect、QRegion、QSize和QString,并且还有C++基本类型,如 int、float等。
//QVariant也可以支持自定义的数据类型 使用Q_DECLARE_METATYPE()宏
Q_DECLARE_METATYPE(Myclass)
int main(int argc, char *argv[])
QApplication a(argc, argv);
// var is object
QVariant var;
var.setValue(12);
int da = var.toInt();
qDebug()<<da;
var = 19;
QString dae=var.toString();
qDebug()<<dae;
qDebug()<<(int)(var.;
//can conserve different types
QVector<QVariant> data(3);
Myclass myclass;
myclass.id = 0;
myclass.name = QString("Liming");
data[0] = QString("dd");
data[1] = 123;
data[2] = QVariant::fromValue(myclass);
QString str = data.value(0).toString();
qDebug()<<str;
int val= data.value(1).toInt();
qDebug()<<val;
//model function
if(data[2].canConvert<Myclass>())
Myclass myclass = data[2].value<Myclass>();
int id = myclass.id;
QString name = myclass.name;
qDebug()<<id<<name;
//conserve variable
//QVariant var_p = QVariant::fromValue((void*)event);
//get
// QPaintEvent* e=(QPaintEvent*)var_p.value<void*>();
return a.exec();
以上是关于using of Qvariant的主要内容,如果未能解决你的问题,请参考以下文章
Performance - Inefficient use of keySet iterator instead of entrySet iterator
top-100-of-the-best-useful-opensource-applications/
Useful Tips of Time Management