【发布时间】:2013-07-22 01:31:13
【问题描述】:
我需要使用从 c++ 例程传递到 QML 的 QByteArray 在 QML 页面中显示 png 图像。我该怎么做?请帮我解决这些问题..
【问题讨论】:
标签: qml blackberry-10 blackberry-cascades qbytearray
我需要使用从 c++ 例程传递到 QML 的 QByteArray 在 QML 页面中显示 png 图像。我该怎么做?请帮我解决这些问题..
【问题讨论】:
标签: qml blackberry-10 blackberry-cascades qbytearray
假设您的数据位于名为 data 的 QByteArray 中,这应该可以:
QImage image;
image.loadFromData(data);
const QImage swappedImage = image.rgbSwapped();
const bb::ImageData imageData = bb::ImageData::fromPixels(swappedImage.bits(), bb::PixelFormat::RGBA_Premultiplied, swappedImage.width(), swappedImage.height(), swappedImage.bytesPerLine());
_image = bb::cascades::Image(imageData);
您现在可以在 QML 代码中的 ImageView 中显示 _image。为此,您必须将其转换为QVariant:QVariant::fromValue(_image);。完成后,您可以在任何ImageView 中显示它。我假设你有一个名为feed 的对象,它有一个image 属性(QVariant):
ImageView {
image: feed.image
}
【讨论】:
QVariant,然后一切正常。
Q_PROPERTY 宏声明不同的属性:developer.blackberry.com/cascades/reference/properties.html