我在自己的代碼中遇到問題,以便在更新模型數據後更新視圖。QT MVC模式未更新視圖特定的SimpleTreeModel示例
然後,我從QT中獲取了SimpleTree示例,並在TreeModel中添加了一個計時器,在10秒後更改數據,然後調用構造函數中用於更新模型的相同集合數據函數。下面的代碼是在定時器超時時執行的插槽。無論我嘗試什麼,視圖都不會更新。 setDate和發出dataChanged是一些嘗試。
在我自己的代碼中,我有一個更新數據的XML-RPC調用,但考慮到我甚至沒有讓simpleTreeModel工作,我認爲這將是一個長鏡頭。
我在這裏有什麼基礎知識嗎?
void TreeModel::slotTimeout(void)
{
QStringList tmp;
tmp << "qaz";
tmp << "wsx";
tmp << "edc";
setupModelData(tmp,rootItem);
setData(QModelIndex(),QModelIndex());
emit dataChanged(QModelIndex(), QModelIndex());
qDebug() << "Timer update";
}
下面的鏈接顯示你說的例子,但在這種情況下,他們正在做它的可編輯。 http://doc.qt.io/qt-5/qtwidgets-itemviews-editabletreemodel-example.html – eyllanesc
我假設模型基於QAbstractItem模型?第一手嘗試使用QStandardItemModel。關於QAbstractItemModel,你必須注意真正實現所有必要的功能,並真正調用所有必要的通知功能! – Tob
感謝您的意見。 @eyllanesc:我對可編輯示例中的定時器做了相同的測試,但它也不會更新。 – Mikkie