最近用Qt6+QML仿制网易云切歌时候MAC的通知界面,调用Image控件的时候发现了一些问题。
教程被应用在MediaStateT中
MediaStateT Github项目地址: https://github.com/taxue-alfred/MediaStateT
MediaStateT Gitee项目地址: https://gitee.com/MediaState/MediaStateT
问题描述:
-
Image控件在重新对
source
赋值的时候,如果路径未发生改变,那么就会使用缓存区的图片。 -
Image的
source
属性应该使用绝对路径,使用qrc:
会被编译到char数组中,更别提什么更改了这里对qrc的部分问题写的比较明白了:QT中添加的资源文件qrc时的路径问题小结_dijkstar的专栏-优快云博客_qt添加qrc
解决方案:
使用file:YourFilePath
如果是绝对路径就需要用
file:///YourAbsolutePath
比如我的Image控件的id:img
,那么先关闭它的缓存功能:cache:false
然后,在你需要对其进行图片更改的时候:
//由于QtImage存在缓存机制,需要cache:false并且先置空路径再设置路径才会加载图片,不改变路径直接调用上次的缓存
img.source = ""
img.source = "file:./YourImage.jpg"