我正在尝试为图表编辑器改进此示例。
该示例使用带有一些与我的需求无关的属性的节点类。现在我想向这个节点类添加一个“数组列表”,然后在“属性”对话框中填充一个 QTableView。我已经用 QTableView 设计了属性对话框。我什至不确定这是否可行/有意义。
基本上,该表必须有 4 列:name、type、value和unit。
表格的每一行都是我需要节点拥有的某个“属性”。
我的问题是:我如何/应该在班级级别为表格建模?我问这个是因为我一直在寻找 QList、QVariant、QMap、QMultiMap 并且我无法弄清楚如何正确使用它们,而且到目前为止我发现的所有示例都没有任何帮助,至少对于我需要的做。我看到了一些关于QStandardItemModel类的东西,我认为它与解决方案有关,但我不明白如何/为什么。
最重要的是,我是一个 Qt/C++ 初学者,Qt/C++ 中的很多动态和术语仍然让我难以理解。
如果有人能给我一些指示,那就太好了。
编辑: 这并没有引起太多关注,我不知道是不是因为我不够清楚,但无论如何,试着想象一下:
- 一个节点有一个PropertyList
- 该PropertyList列出了属性
- 属性是一种字典,因为它们总是有4 个属性和各自的值:名称:(字符串)、类型:(字符串)、值:(双精度)和单位:(字符串)。
- 一个Node只能有一个PropertyList;一个PropertyList可以有多个Properties。一些节点将有 3 个属性,其他节点将有 4 个,等等......
现在,节点通过带有 QGraphicsItem 的 QGraphicsScene 在图表中表示。您可以访问其中包含QTableWidget的PropertiesDialog小部件。此表将显示PropertyList。
我想知道我可以创建/定义什么样的“结构”,使我能够轻松地在表格小部件中插入/读取数据 - 即,我将数据加载到节点的PropertiesList并显示在表格小部件中;如果我更改表小部件中的数据,它会传递到Node的PropertiesList。
希望这有助于消除可能出现的任何疑问。