で問題が発生していQStandardItemModel
ます。私がやりたいことは、モデルにリストを追加することです。リストが更新されたら、パラメーターに新しいリストを渡し、古いモデルをクリアして、新しいリストを追加します。これは簡単に聞こえますが、理解できないバグに遭遇しています。最初のリストをモデルに追加しても問題はありませんが、2 番目のリストを追加すると、最初のリストは正常に削除されますが (コンソールで確認できます)、アプリケーションがクラッシュします。
これが私のコードです:
void MyModel::updateList(QList<QStandardItem*> list)
{
// Delete current model
int rows = rowCount();
for (int i = 0 ; i < rows ; i++)
{
if(item(0)->hasChildren())
{
int children = item(0)->rowCount();
for (int j = 0 ; j < children ; j++)
{
QString name = item(0)->child(0)->accessibleText();
qDebug()<<(name + QLatin1String("\tremoved"));
item(0)->removeRow(0);
}
}
QString itemRemoved = item(0)->accessibleText();
qDebug()<<(itemRemoved + QLatin1String("\tremoved"));
removeRow(0);
}
// Add new list to model
for(int j=0 ; j<list.count() ; j++)
{
appendRow(list[j]);
qDebug()<< (list[j]->accessibleText() + tr(" ADDED"));
}
printf("List UPDATED \n");
}
clear();
明らかに、行ごとに削除する代わりにこのメソッドを使用してみましたが、結果は同じです。
このコードが機能しない理由がわかりません。
誰かがこの問題に光を当てることができれば、私はとても感謝しています.