我有一个这样的 ListView 元素:
ListView {
id: view
width: 200; height: 250
model:myModel;
delegate:
Text{
text: bareJid + ' '+status;
Image{
source:image;
}
}
}
在委托(delegate) Image 元素中,从 QDeclarativeImageProvider 获取其图像.但是当图像的内容发生变化时 myModel 不会更新。当图像的内容发生变化时,我怎么能注意到它重新加载图像。
谢谢。
最佳答案
除非更改源,否则 Image 项将不会尝试重新获取图像。通常,这是通过在图像名称的末尾附加一个可以递增的 id 并在模型和提供程序中处理它来实现的。您还应该设置 cache: false
因为没有必要缓存正在更改的图像。
另一种可能是设置 cache: false
并首先将图像角色更改为“”,然后返回实际名称,记住每次更改后发出 dataChanged。请注意,图像之前不能使用 cache: true 加载,否则无论如何都将使用缓存版本(这在 QtQuick 2.0 中已修复)。
关于qt - 当图像内容随 QDeclarativeImageProvider 更改时,图像元素不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807031/