在Windows上部署QML Desktop应用程序时获取空窗口



我刚刚在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>

其中<目录>是模块导入搜索路径(没有<>)

最新更新