4

我刚刚在 Windows 上完成了 QML 桌面应用程序(使用 QtCreator 和 c++)的编写。

根据这些说明,我已经使用 MinGw 编译器在 C:\QtSDK\Desktop\Qt\4.7.4\mingw\imports\Qt\labs\components 文件夹中安装了 QT Quick Desktop Components。

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

导入 Qt.labs.components 0.1

现在我必须部署我的应用程序,并让它在所有机器上运行:安装了 Qt,或者没有安装。我尝试通过以下步骤进行操作:

复制了这些文件:application.exe、QtCore4.dll、QtGui4.dll、QtNetwork4.dll、styleplugin.dll 和 styleplugind.dll。

但是当我运行 .exe 文件时 - 我得到一个白色的空白屏幕。

(顺便说一句,当我从它的发布文件夹运行 .exe 文件时 - 我只能再次看到一个白色窗口,而当我对一个简单的 Widget GUI 应用程序执行相同操作时 - 它从那里运行良好)。

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

任何答案将不胜感激!

4

2 回答 2

2

可能是您忘记将 QML 文件部署到 exe 了吗?(qrc) 简单的测试方法是将带有 qml-files 的文件夹复制到 exe 文件附近的目的地

UPD:请阅读Qt 资源系统文章

IE:

  1. 首先需要在项目菜单中添加新的“资源文件”,
  2. 然后把你所有的qml文件放到这个资源文件中
  3. 在 QDeclarativeView 中更改“源”,如下所示:

    viewer->setSource(QUrl("qrc:/main.qml"));
    
于 2012-11-25T19:59:23.803 回答
0

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

qmlviewer.exe -warnings show qmlfilename.qml

如果 qmlviewer 找不到任何依赖的导入库,它会显示在这里。

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

例如:

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

或者

set QML_IMPORT_PATH=<directory>

其中 <directory> 是模块导入搜索路径(不带 <>)

于 2012-11-26T20:52:42.583 回答