2
我有一个关于通知模型的一些其他对象存储引用的问题。通知QAbstractItemModel的子类有关更改
我知道信号dataChanged(),但我不知道如何使用它。例如,我的模型存储对其他对象的引用(我们称之为myObjPtr)。只有在模型上调用rowCount(),columnCount(),data()等方法时,模型才会查询myObjPtr的内容。
然后,如果我对myObjPtr的内容进行了一些更改,应该如何通知模型以便它可以发出具有适当参数的dataChanged()信号?我应该使用模型的setData()方法吗?如果我为了实例删除或替换了myObjPtr中的某些元素,我应该传递哪些参数?
谢谢。
感谢您对reset()方法的提示。 你能否详细解释dataChanged()的情况?当我删除/添加/替换myObjPtr中的元素时(myObjPtr实际上具有树形结构),我在原始帖子中询问应将哪些参数传递给dataChanged()。我应该为调用'emit dataChanged(topLeft,bottomRight);'中使用的元素构造QModelIndex的新实例吗? –
如果myObjPtr可以提供有关已更改内容的足够信息,请使用dataChanged信号。是的,您应该创建QModelIndex的新实例来执行此操作。确保使用模型的方法创建它们,或者正确设置索引的父级,以便Qt确切知道哪些模型项目已更改。 –