我在自己的代码中遇到问题,以便在更新模型数据后更新视图。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