在我的项目中,我解析一个数据文件并根据该文件创建一个 QStandardItemModel,然后将其显示在 QTreeView 中。模型创建得很好,我知道如何在创建每个 QStandardItem 时为其设置某些参数。例如,我知道如何设置显示文本和图标。有没有一种方法可以创建“自定义容器”来在每个项目中存储“额外”数据?
从数据文件中读取并将其解析为我(相信)我可以做得很好的模型。然而,用户需要能够从 QTreeView 中编辑/操作模型。这包括添加和删除项目。这看起来很简单,但是,与该项目关联的一些数据不会显示在 QTreeView 中。在用户尝试编辑它之前,它有点……“隐藏”。用户需要双击一个项目来打开一个对话框,他们可以在其中编辑一大堆其他参数和数据(就像很长的字符串和东西,我不能只在 QTreeView 中显示的东西)。
我在试图找到一种方法来存储与树中每个项目有关的所有“额外数据”时遇到了很大的困难。最初,脑海中会浮现出各种各样的 QVector,但是在操纵模型的同时也操纵 QVector 是一种我无法理解的技术。
更糟糕的是,用户需要能够在不同的数据文件(又名模型)之间切换,同时仍保留对先前数据文件所做的任何编辑。
有任何想法吗?如果您有任何问题,请不要犹豫。我可以尽可能地澄清。:) 谢谢你的时间。