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