C++ socketio library失败后,我正试图在QT的QML中使用JavaScript库。我将客户端从https://cdn.socket.io/socket.io-1.4.5.js复制到socketio145.js
。
当我这样导入时:
.import "socketio145.js" as IO;
运行:
socket = IO.io();
"[error stack]Expected token :'\n"
第3行的错误socketio145.js
失败。这是一些非qml兼容的JavaScript代码还是其他的东西?我迷路了。
答案 0 :(得分:1)
我做了一些可以解决问题的事情。 我一点都没有运气。我尝试将SocketIO的C ++库编译到我的项目中,并尝试包括JS。但是没有任何效果,图书馆只是感到困惑。
因此,我拿起Qt QWebSocket并将其包裹在温暖而模糊的外套中,该外套在qml中的外观和工作方式与SocketIO在Javascript中的工作方式非常相似。
https://github.com/Dimcon/ParthanonsQWebSocketIO
它在台式机和Android上均可使用,您要做的就是将parthanonsQWebSocket.h文件复制到您的项目中,并将该类添加到您的QML中。有关自述文件的更多信息。
我希望这可以帮助你们避免像我一样:(:)
答案 1 :(得分:0)
我没有您所指的JS库的任何细节,但这里是在QML中使用您自己的JS代码的方法。 1.将您的JS文件放入像这样的资源文件中
<qresource prefix="/js">
<file alias="DataManager.js">qml/js/DataManager.js</file>
</qresource>
在QML文件中使用以下导入
import&#34; qrc:/js/DataManager.js"作为DataManager
并使用如下的JS:
Item {
id : win
visible: true
width: 640*2
height: 480*1.5
property var constellationManager;
Component.onCompleted: {
win.constellationManager = new ConstellationDataManager.ConstellationDataManager();
}
}