我刚刚在Windows上完成了QML桌面应用程序的编写(使用QtCreator和c++)。
根据这些说明,我已经用MinGw编译器在C:\QtSDK\Deskt\QT\4.7.4\MinGw\imports\QT\labs\Components文件夹中安装了QT Quick Desktop Components。
我用命令qmake&;jom调试&;jom-install,一次发布-使用命令:qmake&;jom发布&;jom安装,所以我现在有两个dll文件:1.styleplugin.dll,2.styleplugind.dll。当我需要的时候,我会使用它们中的每一个。我已经用将它导入到我的应用程序中
导入Q.labs.components 0.1
现在我必须部署我的应用程序,并使其在所有机器上工作:安装Qt,或者不安装。我尝试使用以下步骤:
复制了以下文件:application.exe、QtCore 4.dll、QtGuid.dll、QtNetwork4.dll、styleplugin.dll和styleplugind.dll。
但当我运行.exe文件时,我会得到一个白色的空屏幕。
(顺便说一句,当我从它的发布文件夹运行.exe文件时,我只能再次看到一个白色窗口,当我对一个简单的Widget GUI应用程序做同样的操作时,它从那里运行得很好)。
你知道造成这种情况的原因吗?
任何答案都将不胜感激!
您可能忘记将QML文件部署到exe了吗?(qrc)
测试它的简单方法是将包含qml文件的文件夹复制到.exe
文件附近的目标位置。
请阅读Qt资源系统文档:
即
- 首先需要添加新的";资源文件";在项目菜单中
- 然后将所有qml文件放入该资源文件中
- 更改";来源";在您的
QDeclarativeView
中,如下所示:viewer->setSource(QUrl("qrc:/main.qml"));
一种可能的解决方案是通过运行命令来启用警告
qmlviewer.exe -warnings show qmlfilename.qml
如果qmlviewer找不到任何依赖的导入库,它将显示在此处。
为了确保qmlviewer可以访问导入库,请使用-I<目录>在命令行上或者将QML_IMPORT_PATH环境变量设置为包含导入库的文件夹。
例如:
qmlviewer.exe -warnings show -I <directory> qmlfilename.qml
或
set QML_IMPORT_PATH=<directory>
其中<目录>是模块导入搜索路径(没有<>)