我写了一个显示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
属性,我可以看到它(即路径没问题)。因此,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.
什么可以阻止渲染这样的项目?
答案 0 :(得分:1)
这听起来像是一个openGL问题。
注意:某些效果可能无法用于所有图形API。 在大多数情况下默认使用的OpenGL完全支持 他们都是。但是,软件后端例如没有 支持效果。因此,在运行图形API时 除OpenGL之外,请参阅QML类型的文档 检查效果是否可用的问题。有关的更多信息 Qt快速场景图后端,请参见场景图调整。