【发布时间】:2014-08-16 02:35:43
【问题描述】:
我一直在用QZXing解码二维码,我的QML是这样的
Image{
width:300
height:300
id:imageToDecode
source:"qr.jpg"
cache: true
}
当我将它传递给 C++ 文件时,它必须转换为 QImage 类型, 在原始编码员这样写的代码中
QGraphicsItem *item = qobject_cast<QGraphicsItem*>(imageObj);
然后使用QGraphicsItem构造一个QImage,但是转换后总是返回0,因为QGraphicsItem不继承QObject
直接转换喜欢
QImage*item = qobject_cast<QImage*>(imageToDecode);
由于同样的原因无法使用,我一直在使用
imageObj->inherits("objectName");
测试它可以转换成哪一个,但我找不到 我的意思是将 QML Image 转换为 QImage。
【问题讨论】:
-
您不能将 QGraphicsItem 转换为 QImage,因为它是非常不同的数据类型。我怀疑你有 QGraphicsPixmapItem ( QGraphicsItem 的继承者),所以你可以使用 QGraphicsPixmapItem::pixmap() 来获取你的图像(并将其转换为 QImage 之后)。
-
Qt Quick 的哪个版本,即。你在 qml
import QtQuick x.x中有什么版本?哪个版本的 Qt?只需添加相关标签。 -
另外,你的 C++ sn-ps,它们是真正的代码吗?如果是,则说明这些
imageObj和imageToDecode如何在C++ 中声明和初始化,即。它们是什么。 -
我希望转换的方式就像
-
im 使用 QtQuick 2.2,Qt 5.3 版本,imageObj 是从 QML 传递过来的,这是一个 QML Image 项,传递的方式正是 qzxing 示例中的方式,我实际上可以用 C++ 得到这个项目,它看起来不错,唯一的问题是它被铸造后,它就消失了。 (item=0)