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的主要内容,如果未能解决你的问题,请参考以下文章

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

Image Retrieval Using Customized Bag of Features

Using Internal EEPROM of PIC Microcontroller