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

时间:2012-11-25 13:49:48

标签: qt deployment desktop qml

我刚刚在Windows上编写了一个QML桌面应用程序(带有QtCreator和c ++)。

根据these条款,我在Q:\ QtSDK \ Desktop \ Qt \ 4.7.4 \ mingw \ imports \ Qt \ labs \ components文件夹中安装了QT快速桌面组件和MinGw编译器。

我安装了两次 - 一次用于调试 - 使用命令:qmake&& jom debug&& jom install,以及一次发布 - 使用命令:qmake&& jom release&& jom install,所以我现在有两个dll文件:1.styleplugin.dll,2.styleplugind.dll。当我需要时,我正在使用它们。我已将其导入我的应用程序:

  

导入Qt.labs.components 0.1

现在我必须部署我的应用程序,并使其在所有计算机上运行:安装Qt,或者没有。我尝试使用these步骤执行此操作:

coppied这些文件:application.exe,QtCore4.dll,QtGui4.dll,QtNetwork4.dll,styleplugin.dll和styleplugind.dll。

但是当我运行.exe文件时 - 我的屏幕显示为空白。

(顺便说一句,当我从它的发布文件夹运行.exe文件时 - 我只能看到一个白色的窗口,当我对一个简单的Widget GUI应用程序做同样的事情时 - 它从那里运行得很好)。

你知道这种情况的原因吗?

任何答案都将不胜感激!

2 个答案:

答案 0 :(得分:2)

可能你忘了将QML文件部署到exe吗? (QRC) 测试它的简单方法是使用qml文件复制folde到exe文件附近的目的地

UPD: 请阅读Qt Resource System文章

即:

  1. 首先需要在项目菜单中添加新的“资源文件”,
  2. 然后将所有的qml文件放入此资源文件
  3. 在QDeclarativeView中更改“来源”,如:

    viewer->setSource(QUrl("qrc:/main.qml"));
    

答案 1 :(得分:0)

一种可能的解决方案是通过运行命令

启用警告
qmlviewer.exe -warnings show qmlfilename.qml

如果qmlviewer找不到任何依赖的导入库,它将显示在此处。

要确保qmlviewer可以访问导入库,请使用-I< directory>在命令行上 或者将QML_IMPORT_PATH环境变量设置为包含导入库的文件夹。

例如:

qmlviewer.exe -warnings show -I <directory> qmlfilename.qml

OR

set QML_IMPORT_PATH=<directory>

其中&lt; directory&gt;是模块导入搜索路径(没有&lt;&gt;)