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" :""})
两个地方修改之后完美解决~