Qt:更改 QListView 中的图标

Qt: Change the icon in a QListView

有没有办法在 QListView 中的元素显示后更改其图标?

我找不到用 DecorationRole(用于图标的角色)做 setData 的方法。

使用的模型是自定义的QFileSystemModel,但默认实现只对EditRole有用,所以要更改项目的名称。

我不知道被覆盖的 setData 是如何完成的。

目标是当鼠标悬停在项目上时改变图标(通过mouseMoveEvent

您需要继承 QListView 并实现当鼠标悬停在项目上时更改显示图标角色的行为。

这样的子类可以使用内部代理模型,这样它就不需要扰乱基础视图的绘制。只需通知代理给定项目的装饰角色数据已更改,基础视图就会知道该怎么做。