我有一个QtTreeView和一个Foo派生自QAbstractItemModel附加的类.
在Foo::data我Qt::BackgroundRole根据一些内部数据的状态设置树的每个元素.
当我收到更新我的内部数据的信号时,我想相应地更新每个项目的背景,但我似乎无法可靠地让Qt调用我的Foo::data方法.
我试过打电话update()和repaint()(在视图上)无济于事.调用reset()工作,但我失去了树的所有状态(例如扩展元素等).调用setData()每个元素也有效,但代码有点尴尬,因为我必须显式重建显示的数据树,这是不好的.
我怎么能强迫Qt打电话data()给我的模特?