我有一个像这样的listview元素:
ListView {
id: view
width: 200; height: 250
model:myModel;
delegate:
Text{
text: bareJid + ' '+status;
Image{
source:image;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在委托中,Image元素从QDeclarativeImageProvider获取其图像.但是当图像内容发生变化时,myModel不会更新.当图像内容发生变化时,我怎么能注意到它重新加载图像.谢谢.
除非更改源,否则Image项将不会尝试重新获取图像.通常,这是通过将可以递增的id附加到图像名称的末尾并在模型和提供者中处理它来实现的.你也应该设置,cache: false因为没有点缓存正在改变的图像.
另一种可能是cache: false将图像角色首先设置并更改为"",然后再返回实际名称,记住在每次更改后发出dataChanged.请注意,图像之前不得加载cache:true,否则将使用缓存版本(这在QtQuick 2.0中已得到修复).