部署Qt QML Compiled Executable

时间:2016-01-11 16:45:17

标签: c++ qt qml

所以我有一个简单的应用程序,它使用QML作为我的图形界面,c ++代码用于某些逻辑。我正在寻找一种方法将QML编译成c ++代码并将其链接到我的二进制文件中,并在Qt主页上找到此页面:

http://doc.qt.io/QtQuickCompiler/

基本上它说我的所有QML图形界面文件都使用资源系统,并在我的.pro文件中将QML编译器标志添加到我的qmake配置行中,一切都应该好了。

据我所知,一切编译都很好,但是当我使用Qt windeployqt.exe工具获取所有依赖文件并在干净的系统上测试时,我得到一个小的白色屏幕,好像我的QML文件是没有正确加载。

我使用" qrc:/ mainqml.qml"对我的主要QML文件有一个c ++引用;那就是它。

知道我做错了吗?

2 个答案:

答案 0 :(得分:3)

您正在使用Qt的开源版本。它没有Qt Quick编译器,直到Qt 5.11包含它 - 并且在返工之后也是如此。因此它的性能优于Qt 5.10及之前的预编译QML。

  

我得到一个小的白色屏幕,好像我的QML文件没有正确加载。

...因此您需要使用应用程序部署这些文件,否则它将无法正常工作。

  

将QML编译器标志添加到我的qmake config

该标志是开源Qt版本的无操作,直到Qt 5.11。

答案 1 :(得分:3)

Qt Quick Compiler仅附带Qt Commercial License,但您仍然可以将QML文件编译为qrc文件。从Qt Creator启动Qt Quick应用程序项目就是这样做的。

使用windeployqt部署QML应用程序需要额外的标记--qmldir,例如

windeployqt --(release or debug) --qmldir %PATH_TO_YOUR_QML_FILES% %YOUR_APPLICATION%.exe

它将解析您的qml文件并部署您使用的所有qml导入。