Qml 的Image对应的source不变,但是图片内容改变却不会刷新的解决方案


问题描述和解决方案:

 

 onCutImage: {
            if(isAdded){
                currentModel.insert(currentModel.count, {"imageURL":String(cutImagePrefix + url), "notifyVisible":true})
            }
            else{
                currentModel.set(imgIndex, {"imageURL": "", "notifyVisible":true})//1.先把路径置空
                currentModel.set(imgIndex, {"imageURL":String(cutImagePrefix + url), "notifyVisible":true})//2.然后再设置成应该的路径
} picEdit.close() }
 Image{
        id:imgItem
        cache:false//3.把Image的cache属性设置为false
        asynchronous:true
        source: ""
        sourceSize.width: 30/ratio
        sourceSize.height:30/ratio
        smooth: true
    }

1.因为新版本的Qt的图片缓存机制,导致相同路径的图片只会加载一次。所以要cache = false

2.因为model.set的object是一样的,可能没有触发model数据的刷新,所以要先set(index, {"imageURL" :""})

两个地方修改之后完美解决~


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM