QdeClarativeImageProvider не загружает изображение в контейнере
Вопрос
Image {
id: backImage
source: "image://imageprovider/frontimage"
}
работает нормально, но не работает с столбцом или другим контейнером
Column {
Image {
id: backImage
source: "image://imageprovider/frontimage"
}
}
тогда как
Column {
Image {
id: backImage
source: "screen1.png"
}
}
ХОРОШО. Почему?
Декларация:
class QMLImageProvider : public QObject, public QDeclarativeImageProvider
{
Q_OBJECT
private:
QPixmap front;
QPixmap back;
public:
explicit QMLImageProvider();
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize);
};
реализация:
QMLImageProvider::QMLImageProvider() : QObject(0),
QDeclarativeImageProvider(QDeclarativeImageProvider::Pixmap) {}
QPixmap QMLImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) {
return QPixmap(QString("QML/screen1.png"));
}
Регистрация:
screenArea = new QDeclarativeView(wgScreenArea);
qmlImageProvider = new QMLImageProvider();
screenArea->engine()->addImageProvider(GlobalVars::imageProviderID, qmlImageProvider);
screenArea->setSource(QUrl::fromLocalFile("QML/screen.qml"));
screenArea->setResizeMode(QDeclarativeView::SizeRootObjectToView);
PS извините за мой английский.
~ Решен ~
Column {
id:screenImage
Image {
id: backImage
width: screenImage.width
height: screenImage.height
source: "image://imageprovider/backimage"
}
}
Оно работает! Большое спасибо!
Решение
Возможно, что Image
с использованием ImageProvider
Разве не объявляет о своей ширине и высоте правильно? Column
Степеньте немного смешной с предметами, которые не объявляют их ширину и высоту. Попробуйте усердно кодировать width
а также height
в твоей Image
во втором примере, и это должно работать.
Не связан с StackOverflow