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
- test_QVariant.cpp
- cpp
- CPP
- CPP
- cpp
- cpp
- CPP
- CPP
- ClientSockThread.cpp&&ClientUrlThread.cpp
- cpp调用其他cpp
- ex34a.cpp&&ex34aDoc.cpp&&ex34aView.cpp
- MainFrm.cpp&&ServerThread.cpp&&SheetConfig.cpp
- CPP thread
- cpp->html
- CFaderWnd.cpp
- PasswordReminder.cpp
- object.cpp
- CmdTarget.cpp
- STL 之for_each,transform
- iOS 使用webView实现图文混排
- Android 多进程环境判断当前进程是否是UI进程
- Maximal Rectangle(最大矩阵)
- List::定义
- test_QVariant.cpp
- Redis 性能测试
- MIDI歌曲解析
- STL 之count,count_if,max,max_element,min,min_element和random_shuffle
- Spark学习之14:Spark on Yarn
- php发送微信客服消息
- 讲解c++ shared_ptr很好的资料
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
- Scrapy