2011-05-27 38 views
2

我已经查看了树型示例中的qt文档。我正在努力如何将我的数据结构映射到模型。在qt和数据映射中创建树模型

我有一个mystructs数组,我想在树中显示,有人可以提供任何帮助如何做到这一点。结构如下所示

struct mystruct{ 
    int id; 
    float val; 
    struct settings{ 
      QString setting_1; 
      QString setting_2; 
      bool on; 
    }; 
}; 

我想将这个结构适合qt simpletreemodel示例。

感谢

+0

你是否必须与树形视图中的结构进行很多交互?如果不是这样,我不确定你应该进入视图/模型中的简单对象。你可能会考虑坚持'QTreeWidget'和'QTreeWidgetItems' ... – vrince 2011-05-27 15:52:58

+0

是的,我需要与视图 – mikip 2011-05-27 17:28:19

回答

0

你可以做这样的事情:

实现树为QTreeWidget

class YourTreeWidget : public QTreeWidget 
{ 
public: 
    ... 
    //reimplement useful stuff of the QTreeWidget 
    //like onItemClicked(...) 
}; 

然后实现绑定到一个mystruct实例

class mystruct; 
class YourTreeWidgetItem : public QTreeWidgetItem 
{ 
public: 
    YourTreeWidgetItem(mystruct*); 
    mystruct* getData() { return data;} 
private: 
    mystruct* data; 
} 

后来项目创建一个YourTreeWidget ,并为您的数组中的每个mystruct实例添加一个项目。 不要忘记根据您放入物品的数据正确格式化QTreeWidget

setHeaderLabels(QStringList() << "Column 1" << "Column 2"); 
... 

这又是一个简单的解决方案,但我认为你可以用它来做复杂的事情。

注:当我说

你有互动很多与结构

我的意思是你需要的定制选择,定制版,自定义显示...

+0

感谢您的时间文斯,是的树模型将用于一些不同的意见 – mikip 2011-05-27 18:05:27