• 7274阅读
  • 6回复

[讨论]请问C++里是否可以遍历某个类的特定类型的变量,并展示到前台来 [复制链接]

上一主题 下一主题
离线zeus_k
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-27
开发过程中,我遇到这样一个问题

开发环境QT4.8.2
语言C++

要求:在头文件中定义好的类中,如下所示:
class PGDS_API Area : public Element
{
public:
Area();

virtual int type_id() const override
{
return ELEMENT_AREA;
}

public:
map<string, Element*> vl_map; // 名称->电压等级
map<string, set<Element*>> vls_map; // 名称->电压等级,当出现重名时

map<string, Element*> area_map; // 名称->区域
map<string, set<Element*>> areas_map; // 名称->区域,当出现重名时

map<string, Element*> zone_map; // 名称->分区
map<string, set<Element*>> zones_map; // 名称->分区,当出现重名时
};
要求把其中的map型变量名称作为表格表头展示到前台来。

就像qt example里面的customsortfiltermodel。但是这个例子里面的表头还有数据文件都是直接通过程序写入的。

我的初步想法是:写一个方法,能遍历类中的特定类型变量,将其读取为字符串,然后作为表头展示到前台来。但是一直无法实现,请高手不吝赐教。
我思故我在
离线XChinux

只看该作者 1楼 发表于: 2012-06-27
通过其它方法实现吧。
或者你将它变成Qt 类的属性。(Q_PROPERTY),要求从QObject派生。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zeus_k
只看该作者 2楼 发表于: 2012-06-27
回 1楼(XChinux) 的帖子
你好,可否写一个例子,您说的这些,我还不是太明白。太菜,抱歉
我思故我在
离线jdwx

只看该作者 3楼 发表于: 2012-06-27
序列化,要将特定的数据以一定的格式显示或保存,这个工作要自己做。
先要有一个格式,再想办法把数据变成那个格式。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线XChinux

只看该作者 4楼 发表于: 2012-06-27
定义成Qt的属性,就能从meta-object对象中获取到这些属性列表。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 5楼 发表于: 2012-06-27
其实整那么麻烦干嘛?为什么不用QVariant,能从QVariantMap、QVariantList转换。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zeus_k
只看该作者 6楼 发表于: 2012-06-27
列位大神,实在太菜,可否给出代码,不胜感激。
我思故我在
快速回复
限100 字节
 
上一个 下一个