QByteArray在QML中转换成什么?

时间:2015-06-05 13:38:22

标签: javascript qt qml qbytearray

如果我有

signal:
    void foo(QByteArray data);

在QML中,我处理它:

 onFoo: {
     console.log(data.toString());
 }

QML中的数据类型是什么?它有什么方法?它似乎不是一个javascript字符串 - 它甚至没有.length,也没有.charCodeAt()。但它似乎也不是QByteArray - 没有.at()data[0]undefined!它 .toString()

如何访问其内容?例如。如果它是一个四字节的uint32_t,我怎么把这个数字变成一个javascript变量?

2 个答案:

答案 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)

here中所述:

  

QML引擎在QByteArray之间提供自动类型转换   值和JavaScript ArrayBuffer对象。

此功能自Qt 5.8起可用。