发出dataChanged时,QTreeView没有刷新数据

时间:2018-12-29 05:51:41

标签: qt refresh qabstractitemmodel

我有一个很奇怪的问题。有人可以帮我吗?预先感谢。

我有一个QTreeview,它显示来自套接字的数据,并且它使用自定义的QAbstractItemModel;数据到达时,将发出dataChanged。在我的项目模型的数据方法中,我qDebug日志信息。套接字在单独的线程中运行。

奇怪的是,如果我在模型的数据方法中设置一个断点,则该方法将被命中,并且QTreeView的单元格将被更新。但是,如果data方法中没有断点,则该方法似乎不会被调用(不会从qDebug中记录日志),并且单元也不会更新。

我想它与线程相关,但是我不知道它到底是什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

可能您忘记更新QTreeView,如果发生断点,此事件会自动发生,但如果没有此事件,则应在程序中更新QTreeView或其父窗口小部件。

答案 1 :(得分:0)

仅确定了问题的根源:子节点的父代不正确。谢谢大家。新年快乐!