QAbstractItemModel 中的复杂数据

问题描述

我一直在尝试为我的模型编写一个 GUI,它与任何 GUI 框架都完全无关。框架我必须使用QT,但我没有任何经验。

但是,我真的不知道从哪里开始。我有一个这样存储的项目列表:

Items
[
  "First group":
  [
    {
      "name": "foo","age": 31
      "array":
      [
        1,2,3
      ]
    },{
      "name": "second foo",]
]

在我的 C++ 代码中,它看起来像这样:

struct Entry
{
  std::string name;
  int age;
  std::array<int,3> array;
};

struct Group
{
  std::vector<Entry> entries;
};

std::unordered_map<std::string,Group> items;

我将如何实现?我拥有的所有三个结构都是可观察的,因此 qabstractitemmodel 可以在结构中的任何数据发生更改时收到通知

我需要能够更改每个 Entry 的数据以及添加新的 EntriesGroups

主要有两个问题我不知道怎么解决

  1. ) QVariant qabstractitemmodel::data 返回一个 QVariant。但是,我的结构“Entry”不适合 QVariant 中指定的任何类型。正如我所说,我的模型必须完全独立于 QT。

  2. ) 我将如何显示数据?我是否必须编写自定义小部件?我在网上找到的所有示例都使用 listtableTreemap。我猜 Treemap 会适合我的结构...?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)