我正在为树状结构实现模型/视图,并且我决定尝试使用QStandardItemModel,我想在其上包装一个特定的类(我在这里称之为“appSpecificClass”)。
基本上,我希望该类的一部分(例如名称或某些数据)显示在模型中,并且当我更改模型(在编辑角色或拖放中)时,我希望这会对 appSpecificClass 产生影响(也就是说,当我更改模型上显示的名称时,与模型的 appSpecificClass 项关联的对象上的名称也会更改)。
因此,我从一个 appSpecificItem 子类化 QStandardItem 开始,它只有一个指向 appSpecificClass 的指针。当我构造 appSpecificItem 时,从 appSpecificClass 调用文本和图标,一切正常。
但是,当从 appSpecificItem 更改数据时,它自然不会更改 appSpecificClass,因为到目前为止我还没有找到任何通过重载虚函数(或其他)与 appSpecificItem 的指针交互的方式
有谁知道该怎么做/如果可能的话?例如,如果信号
QStandardItemModel::itemChanged ( QStandardItem * item )
发出,我可以更改 appSpecificItem 的指针。
如果没有,是否有任何关于从头开始实现模型的好教程?我已经尝试了一些,但这并不是一件容易的事。理想情况下,我想要一个类似 QStandardItemModel 的模型,但对它进行一些抽象(这样我就可以将我的 appSpecificClass 放在上面)。