Чтобы показать немного Pixmap в QML из модели C ++, я использовал 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
о возобновлении запроса к поставщику.