gpt4 book ai didi

qt - 续订 QQuickImageProvider 请求

转载 作者:行者123 更新时间:2023-12-04 01:55:10 26 4
gpt4 key购买 nike

为了从 C++ 模型在 QML 中显示一些像素图,我使用了 QQuickImageProvider :

class ImageProvider : public QQuickImageProvider
{
public:
ImageProvider(MyModel *model) : QQuickImageProvider(QQuickImageProvider::Pixmap), _model(model) { }

QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override
{
Q_UNUSED(requestedSize);
int width = 160;
int height = 120;

QString name = id.left(id.indexOf("*"));
if (size) *size = QSize(width, height);
return _model->findThumbnail(name); // retrieve image in the model
}

private:
MyModel *_model;
};

模型在启动时准备就绪,但图像在运行时填充,速度很慢。
当 QML 页面加载时,它会向图像提供者请求像素图,但它们还没有准备好。

一段时间后,它们在模型中可用,但我不知道如何告诉 QML Image对象更新对提供者的请求。

最佳答案

解决办法很简单,新建一个角色,表示图片已满。

 setData(index, false, IsLoadedRole);
// finished loading
setData(index, true, IsLoadedRole);

*.qml
Image { 
source: isLoaded ? "image://MyImageProvider/" : ""}
}

关于qt - 续订 QQuickImageProvider 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51090843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com