Qt:更改QListView中的图标

时间:2015-08-03 20:08:59

标签: qt qlistview qicon

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

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

使用的模型是自定义QFileSystemModel,但默认实现仅适用于EditRole,因此更改项目的名称。

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

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

更改图标

1 个答案:

答案 0 :(得分:1)

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

这样的子类可以使用内部代理模型,因此不需要弄乱基本视图的绘图。只需告知代理,给定项目的装饰角色数据已更改,基本视图将知道该怎么做。