如何在Qt / qml中更新qml TableView / ListView

时间:2019-05-29 14:50:39

标签: qt qml

我有一个从ResultListModel继承的类名QAbstractTableModel。该类具有一个成员:sql_数据库的成员db_ pointer。我在qml中有一个TableViewListView,它们的模型属性是ResultListModel的实例。我可以显示ResultListModel实例的内容,该实例表示sqlite数据库中的一个表。但是,当将某些行添加到表中时,除非使用TableView / ListView,否则我无法更新qml中的beginResetModelendResetMoel,但还有更多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,然后每秒添加一行。

0 个答案:

没有答案