Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QQuickImageProvider
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Quick
Vilgeforc
Приветствую!
Написал провайдер изображений, зарегистрировал его, однако при попытке использовать получаю такую ошибку:"QML Image: Invalid image provider: image://provider/green". Никак не могу понять что не так.
В QML  использую так:
source: "image://provider/green";

Регистрировать пробовал так и так:
view.engine()->addImageProvider(QLatin1String("provider"), temp->getImageProvider());
view.rootContext()->engine()->addImageProvider(QLatin1String("provider"), temp->getImageProvider());

Метод получения Pixmap выглядит так:
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize){
       int width = 100;
       int height = 50;

       if (size)
           *size = QSize(width, height);
       QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
                      requestedSize.height() > 0 ? requestedSize.height() : height);
       pixmap.fill(QColor(id).rgba());

       return pixmap;
   }
Vilgeforc
QQuickView view;
EngineImageProvider *provider = new EngineImageProvider();
view.engine()->addImageProvider(QLatin1String("provider"), provider);
view.setSource(QUrl(QStringLiteral("qrc:/main.qml")));


Так всё заработало. Ошибку выдавало из-за того, что провайдер устанавливался после источника, и естественно на момент инициализации его ещё не было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.