QDeclarativeImageProvider 不在容器中加载图像
Posted
技术标签:
【中文标题】QDeclarativeImageProvider 不在容器中加载图像【英文标题】:QDeclarativeImageProvider does not load image in container 【发布时间】:2011-04-28 05:27:39 【问题描述】:Image
id: backImage
source: "image://imageprovider/frontimage"
工作正常,但不适用于 Column 或其他容器
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);
附:对不起我的英语。
~已解决~
Column
id:screenImage
Image
id: backImage
width: screenImage.width
height: screenImage.height
source: "image://imageprovider/backimage"
有效! 非常感谢!
【问题讨论】:
【参考方案1】:可能Image
使用ImageProvider
没有正确声明其宽度和高度? Column
s 对未声明其宽度和高度的项目感到有些好笑。尝试在第二个示例中的 Image
中对 width
和 height
进行硬编码,它应该可以工作。
【讨论】:
以上是关于QDeclarativeImageProvider 不在容器中加载图像的主要内容,如果未能解决你的问题,请参考以下文章