有点奇怪,我看不到实际更改 QStandardItemModel 的“数据”的方法。例如:
struct TestStruct {
std::vector<int> testVector;
void addNumber(int i){
//this method will modify the member vector
}
};
Q_DECLARE_METATYPE(TestStruct)
QStandardItemModel* model = QStandardItemModel(1,1);
QModelIndex index = model->index(0,0);
TestStruct test;
test.addNumber(1);
model->setData(index, qVariantFromValue(test));
这样,我将有效地添加一个带有数字 1 的 std::vector 到模型的索引 {0,0}。但是,我如何从不再有权访问 TestStruct 实例的地方向该 TestStruct 的向量添加另一个数字?
“数据”函数返回一个 QVariant 可以转换为 TestStruct 但它是一个副本,我需要一个参考......明白了吗?