我编写了一个显示Image和DropShadow的最小示例
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属性,我就可以看到它(即路径是ok的)。因此,QtGraphicalEffects就不起作用了。
所有这三台机器(开发、虚拟机、客户的计算机)都运行相同的操作系统:Windows7家庭高级版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 GTX670,客户显卡为Intel GMA4500。
是什么阻止了这种项目的呈现呢?
发布于 2017-11-20 19:22:28
这听起来像是openGL的问题。
注意:某些效果可能并不适用于所有图形API。在大多数情况下默认使用的OpenGL对它们都有完全的支持。然而,例如,软件后端根本不支持效果。因此,当使用OpenGL以外的图形API运行时,请参考相关QML类型的文档,以检查效果是否可用。有关Qt快速场景图后端的详细信息,请参见场景图自适应。
http://doc.qt.io/qt-5/qtgraphicaleffects-index.html
https://stackoverflow.com/questions/47378457
复制相似问题