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));
これで、モデルのインデックス {0,0} に番号 1 の std::vector を効果的に追加したことになります。しかし、TestStruct インスタンスにアクセスできなくなった場所から、その TestStruct のベクトルに別の数値を追加するにはどうすればよいでしょうか?
「データ」関数は、TestStruct としてキャストできる QVariant を返しますが、それはコピーであり、参照が必要です... 取得しますか?