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

s4e*_*eed 4 qt qml qt-quick

我有一个像这样的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不会更新.当图像内容发生变化时,我怎么能注意到它重新加载图像.谢谢.

Mar*_*inJ 7

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

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