Node.js用に設計され、パッケージ化されたJSライブラリを使用して、QMLで使用する(具体的にはProtoBuf library)。 ProtoBufライブラリはByteBuffer libraryに依存しています。QMLでのノードJSライブラリの使用
bytebuffer.js
とprotobuf.js
を編集して、最初の行に.pragma library
を追加しました。その後、私の.qml
に私がしている:私は見
import "qrc:/scripts/bytebuffer.js" as BB
import "qrc:/scripts/protobuf.js" as PB
Window {
Component.onCompleted: {
console.log('PB', PB);
console.log('func',PB.loadProtoFile);
for (var k in PB) console.log(k,typeof PB[k],PB[k]);
console.log('done!')
}
}
出力は次のようになります。だから、
qml: PB [object Object]
qml: func undefined
qml: done!
、QMLは、ある意味でいるProtobufライブラリをロードしている(と私はそのライブラリにデバッグメッセージを入れていますgeneric loaderが実行中で、ByteBuffer
が見つかりましたが、methods that I expectのオブジェクト(loadProtoFile()
など)ではないことが確認されました。
ライブラリが公開する実際のProtoBuf
オブジェクトにはどうすれば到達できますか?あるいは、QMLで正しく動作するようにライブラリを変更する方法はありますか?