Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt:更改QListView中的图标_Qt_Qlistview_Qicon - Fatal编程技术网

Qt:更改QListView中的图标

Qt:更改QListView中的图标,qt,qlistview,qicon,Qt,Qlistview,Qicon,是否有方法在显示后更改QListView中元素的图标 我找不到使用DecorationRole(用于图标的角色)执行setData的方法 使用的模型是自定义的QFileSystemModel,但默认实现仅适用于EditRole,以便更改项的名称 我不知道如何重写setData 目标是在鼠标悬停在项目上时更改图标(通过mouseMoveEvent)您将需要子类化QListView,并实现当鼠标悬停在项目上时更改显示图标角色的行为 这样的子类可以使用内部代理模型,这样就不需要干扰基础视图的绘制。只需

是否有方法在显示后更改
QListView
中元素的图标

我找不到使用
DecorationRole
(用于图标的角色)执行
setData
的方法

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

我不知道如何重写
setData


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

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


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

子类
QFileSystemModel
和pad
DecorationRole
setData
?但是,您需要知道将图标设置到何处,以便视图可以通过模型的
数据()
访问它。我不理解“更改显示图标的角色”是什么意思或意味着什么。@user3842408源模型提供了两个图标,装饰角色下默认,自定义角色下悬停一个。根据子类视图的指示,代理将DecorationRole数据的请求重定向到相同的角色或自定义悬停角色。