如果我有
signal:
void foo(QByteArray data);
在QML中,我处理它:
onFoo: {
console.log(data.toString());
}
QML中的数据类型是什么?它有什么方法?它似乎不是一个javascript字符串 - 它甚至没有.length
,也没有.charCodeAt()
。但它似乎也不是QByteArray
- 没有.at()
。 data[0]
是undefined
!它 有.toString()
。
如何访问其内容?例如。如果它是一个四字节的uint32_t,我怎么把这个数字变成一个javascript变量?
答案 0 :(得分:3)
根据http://doc.qt.io/qt-5/qtqml-cppintegration-data.html和当前来源http://code.woboq.org/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler.cpp.html#567,QByteArray与QML之间没有转换。您可能会在JS中获得一个不透明,不可访问的对象。
答案 1 :(得分:2)