当图像内容随QDeclarativeImageProvider更改时,Image元素不会更新

时间:2012-08-04 08:14:03

标签: qt qml qt-quick

我有一个像这样的listview元素:

ListView {
    id: view
    width: 200; height: 250
    model:myModel;
    delegate:
        Text{
            text:  bareJid + ' '+status;
            Image{
                source:image;
            }
        }
}
委托中的

Image元素从QDeclarativeImageProvider获取其图像。但是当图像内容发生变化时,myModel不会更新。当图像内容发生变化时,我怎么能注意到它重新加载图像。 感谢。

1 个答案:

答案 0 :(得分:7)

除非更改源,否则Image项将不会尝试重新获取图像。通常,这是通过将可以递增的id附加到图像名称的末尾并在模型和提供者中处理它来实现的。您还应该设置cache: false,因为没有点缓存正在更改的图像。

另一种可能性是设置cache: false并将图像角色首先更改为“”,然后再回到实际名称,记住在每次更改后发出dataChanged。请注意,图像之前不得加载cache:true,否则将使用缓存版本(这在QtQuick 2.0中已得到修复)。