在部署Qt Quick演示应用程序Minehunt时获得全白屏幕

时间:2013-08-29 05:45:41

标签: qt qml qt-quick

为了测试部署过程,我正在尝试部署包含的演示应用程序Minehunt。我能够让它运行,没有崩溃或错误,但屏幕全是白色。

我认为这通常意味着我缺少插件。 Dependency walker报告没有问题,我甚至尝试包括Qt MingW插件目录中的所有插件,但没有这样的运气。

这是我到目前为止所包含的内容;任何人都可以建议我还需要添加什么才能让它运行?

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

你的dlls看起来一点也不差。我想也是,这是你的插件。即使他们在那里,也很有可能你的程序找不到它们。在默认情况下,Qt有点挑剔。您可以尝试qt.conf。这是您必须在可执行文件所在的文件夹中创建的小文本文件。它包含Qt插件的路径。

例如,在我的一个项目中,我有以下文件夹布局:

Appfolder
  plugin
    qt
      plugins
        imageformats
        sqldrivers
   myapp.exe
   qt.conf
   ...many dlls...

然后我将一个qt.conf文件添加到Appfolder,其中包含以下内容:

[Paths] 
Plugins = plugins/qt/plugins

我的程序是Qt 4,但我不认为插件部署的这个方面在Qt5中发生了变化。 我所有的qt dll都在qt中。我添加了以下路径:SET PATH=.\plugins;.\plugins\qt;%PATH%。在我试过的任何Windows上都像魅力一样。

编辑: 然后我创建了一个.bat文件,它执行:

SET PATH=.\plugins;.\plugins\qt;%PATH%
cd Appfolder
start myapp

这是一个丑陋的快速修复,我没有时间用更好的东西替换它。

答案 1 :(得分:1)

如果应用程序运行并显示空白屏幕,则通常表示两件事:

  1. 所有依赖项(dll)可能存在并正确检测到。
  2. 很可能丢失的是qml文件在正确位置的存在。
  3. 在你的main.cpp中检查你将给出的qml文件的路径,并查看该文件夹是否存在于与你的可执行文件相对应的相同位置。

    此外,不是通过双击运行可执行文件,而是通过命令行运行它。如果根据指定的路径无法找到某些图像/文件/其他依赖项等,它可能会打印一些消息。


    编辑1:

    在.pro文件中添加此标志:

     CONFIG += console
    

    运行应用程序后,它将在控制台中提供确切的调试消息。