我有一个从ResultListModel
继承的类名QAbstractTableModel
。该类具有一个成员:sql_数据库的成员db_ pointer
。我在qml中有一个TableView
和ListView
,它们的模型属性是ResultListModel
的实例。我可以显示ResultListModel
实例的内容,该实例表示sqlite数据库中的一个表。但是,当将某些行添加到表中时,除非使用TableView
/ ListView
,否则我无法更新qml中的beginResetModel
或endResetMoel
,但还有更多20000行,并且每秒将添加一行,添加新行时如何更新视图,
我尝试过:
emit dataChanged(createIndex(productId - 1, 0), createIndex(productId - 1, 1));
但是它不起作用。
class ResultListModel : public QAbstractTableModel
...
void ResultListModel::onSaveResult(int productId, int sourceId, const QString &resultType, bool isNG)
{
emit dataChanged(createIndex(productId - 1, 0), createIndex(productId - 1, 1));
//emit modelDataChangd();
emit resultChanged(productId, sourceId, resultType, isNG);
}
ListView{
id: listViewResult
Layout.fillHeight: true
Layout.preferredWidth: 360
clip: true
focus: true
model: resultListModel
...
}
我需要知道执行此操作的正确方法是:为大型表更新qml ListView
/ TableView
,然后每秒添加一行。