QByteArray在QML中会被转换成什么?

9
如果我有一个
signal:
    void foo(QByteArray data);

在QML中我处理它:

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

什么是 QML 中的数据类型?它有哪些方法?它似乎不是 JavaScript 字符串——甚至没有 .length.charCodeAt()。但它也不像 QByteArray——没有 .at()data[0]undefined!然而,它确实有.toString() 方法。
如何访问它的内容?例如,如果它是一个四字节的 uint32_t,则如何将该数字放入 JavaScript 变量中?

1
似乎在QByteArray到ArrayBuffer的转换方面有一些进展。由于它刚在几天前合并,我们可能要等到Qt 5.8才能使用。https://codereview.qt-project.org/#/c/144761/ - pwuertz
2个回答

8

此处所述:

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

此功能自Qt 5.8起可用。


4

好吧,我想我得自己创建一个基于QObject的类型来包装QByteArray。 - Timmmm
2
请在Bug跟踪器中添加建议,以添加QByteArray的映射。它可以由某些JS数组支持。 - peppe
是的,它已经过时了。正在更改它。 - peppe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接