test_QVariant.cpp

来源:互联网 发布:淘宝视频教程 编辑:程序博客网 时间:2024/05/24 03:34
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QMap>#include <QVariant>#include <QMetaType>namespace Ui {class Widget;}typedef QMap<QString,QVariant> DataMap;typedef QMap<QString,QVariant>::iterator DIterator;class Point{public:    Point(){    _x = 0;    _y = 0;    }    Point(int x,int y){    _x = x;    _y = y;    }    int _x;    int _y;};struct Obj{    QString name;    QString id;    int age;};Q_DECLARE_METATYPE(Obj);Q_DECLARE_METATYPE(DataMap);Q_DECLARE_METATYPE(Point);class Widget : public QWidget{    Q_OBJECT    public:    explicit Widget(QWidget *parent = 0);    ~Widget();    private slots:    void on_A_clicked();    void on_B_clicked();    void on_C_clicked();    void on_D_clicked();    void on_E_clicked();    void on_F_clicked();    void on_G_clicked();    void on_H_clicked();    void on_I_clicked();private:    Ui::Widget *ui;    DataMap m_map;};#endif // WIDGET_H
<pre name="code" class="cpp">#include "widget.h"#include "ui_widget.h"#include <QDebug>Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);}Widget::~Widget(){    delete ui;}void Widget::on_A_clicked(){    m_map.insert("AKey","AValue");}void Widget::on_B_clicked(){    m_map.insert("BKey","BValue");}void Widget::on_C_clicked(){    m_map.insert("CKey","CValue");}void Widget::on_D_clicked(){    for(DIterator begin = m_map.begin();begin != m_map.end();begin++){        QString key = begin.key();        if (key == "EKey"){            QVariant val = begin.value();            struct Obj ob = val.value<Obj>();            qDebug()<<"Ekey::"<<ob.name<<endl;        }else if (key == "FKey"){            QVariant val = begin.value();            DataMap mp = val.value<DataMap>();            qDebug()<<"Fkey::"<<mp<<endl;        }else if(key == "GKey"){            QVariant val = begin.value();            Point pt = val.value<Point>();            qDebug()<<"Gkey::"<<pt._x<<endl;        }        else{            QVariant val = begin.value();            qDebug()<<"key:"<<begin.key()<<"value::"<<val<<endl;        }    }}void Widget::on_E_clicked(){    struct Obj ob;    ob.age = 10;    ob.name = "EValue";    ob.id = "110";    QVariant val;    val.setValue(ob);    m_map.insert("EKey",val);}void Widget::on_F_clicked(){    DataMap fMap;    fMap.insert("1","11");    fMap.insert("2","22");    fMap.insert("3","33");    QVariant val;    val.setValue(fMap);    m_map.insert("FKey",val);}void Widget::on_G_clicked(){    Point pt(44,44);    //pt._x = 4;    //pt._y = 8;    QVariant val;    val.setValue(pt);    m_map.insert("GKey",val);}void Widget::on_H_clicked(){}void Widget::on_I_clicked(){}



0 0
原创粉丝点击