QML QtGraphicalEffect不在目标机器中呈现

时间:2017-11-19 15:19:16

标签: qt graphics qml

我写了一个显示ImageDropShadow的最小例子:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtGraphicalEffects 1.0

Window {
    visible: true
    color: "black"

    Image {
        id: imgBackground
        source: "file:///path-to-background.png"

        Image {
            id: imgSpinner
            source: "file:///path-to-spinner.png"
            x: imgBackground.width / 2 - imgSpinUp.width / 2
            y: 260
            visible: false
            antialiasing: true
        }

        DropShadow {
             id: sdwSpinner
             anchors.fill: imgSpinner
             horizontalOffset: 8
             verticalOffset: 8
             radius: 4.0
             samples: 17
             color: "#AA000000"
             source: imgSpinner
        }
    }
}

在开发机器中一切正常:我看到图像的阴影与预期一致。现在我想将它部署在目标计算机上。 为了找到所需的文件,我创建了一个全新安装操作系统的虚拟机,并尝试运行我的应用程序。按预期工作,很好!

最后,我将同一个文件部署到我的客户机器......这里DropShadow没有呈现!如果我设置了图像的visible属性,我可以看到它(即路径没问题)。因此,QtGraphicalEffects不起作用。

所有这三台机器(开发,虚拟机,客户的计算机)运行相同的os.:Windows 7 Home Premium 64位。 Qt版本是5.9 MinGW。

这里是我部署的文件:

imageformats/
images/
platforms/
QtGraphicalEffect/
QtQml/
QtQuick/
QtQuick.2/
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
opengl32sw.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5Qml.dll
Qt5Quick.dll
myapplication.exe

开发/虚拟机视频卡是GeForce GTX 670,客户端是Intel GMA 4500.

什么可以阻止渲染这样的项目?

1 个答案:

答案 0 :(得分:1)

这听起来像是一个openGL问题。

  

注意:某些效果可能无法用于所有图形API。   在大多数情况下默认使用的OpenGL完全支持   他们都是。但是,软件后端例如没有   支持效果。因此,在运行图形API时   除OpenGL之外,请参阅QML类型的文档   检查效果是否可用的问题。有关的更多信息   Qt快速场景图后端,请参见场景图调整。

http://doc.qt.io/qt-5/qtgraphicaleffects-index.html