有的时候我们QTreeView的里面数据已经改变,但是界面却还是显示原来的数据,有的人会说用update函数,但是这个函数没啥用,

经过半天的摸索,发现了这三种方法。

第一种:使用QTreeView的

doItemsLayout()

但是这个函数最好是在主线程中调用,因为这个函数里面是哟你定时器,在非主线程中调用会报警告。

第二种:使用模型/视图框架,继承QAbstractItemModel,然后就可以使用下面两个函数来刷新。

beginResetModel();
endResetModel();

第三种:下面这个方法是最好的

QAbstractItemView::viewport()->update();