如何为 Windows XP 部署 Qt/QML 应用程序

Posted

技术标签:

【中文标题】如何为 Windows XP 部署 Qt/QML 应用程序【英文标题】:How to deploy Qt/QML application for Windows XP 【发布时间】:2016-01-06 15:13:12 【问题描述】:

我的 QML 应用程序使用了一些 粒子效果,我通过 QQuickWidget 调用了 QML 对象,我尝试通过 windeployqt 为 Windows 部署 QML 应用程序工具,但是当我在其他 PC(使用 Windows XP)上运行它时,我收到的只是空白(或黑色)小部件(在 QQuickWidget 位置)。请帮帮我!谁能帮我为 Windows XP 部署 QQuickWidget?

【问题讨论】:

你有多个版本的qt吗?使用 windeployqt 时,请确保 PATH 变量指向正确的版本。这是我要做的第一次检查。 试试这个链接在 Windows 上部署 Qt Quick Applications fecub.wordpress.com/2015/03/28/… 有什么效果? QML 中定义的着色器?没有效果它也会变黑吗?由于 GLSL/OpenGL 版本不兼容,我的猜测可能是 OpenGL 问题,可能是整体设置问题,也可能是特定着色器问题。检查调试控制台以获取 GLSL 编译器的输出。 使用WinDbg 查看已部署应用程序的输出,然后编辑您的问题并显示任何错误。 【参考方案1】:

问题在于 QML 通过 OpenGL 进行绘制。对于像 XP 这样的旧 Windows,我们可能需要避免使用 ANGLE。 Qt 5 on Windows ANGLE and OpenGL 文章解释了 OpenGL 模式如何与 Qt 一起工作,具体取决于系统和 Windows XP 的具体情况:

如果您的应用程序使用 OpenGL 调用而不是 OpenGL ES 2.0 您的应用程序根本不使用 OpenGL(因为 ANGLE 意味着额外的部署依赖项,然后不需要)。 您的应用程序需要在 Windows XP 上运行。虽然很诱人 使用 ANGLE 作为缺少的图形驱动程序的替代品 平台,它不能完全工作,并可能导致崩溃,例如, 当安全对话框打开时。

可行的解决方案是按照 OpenGL 指南构建自定义 Qt:Qt for Windows - Requirements。这里有一些相关的问题:QT OpenGL for Desktop required for windowing?

【讨论】:

以上是关于如何为 Windows XP 部署 Qt/QML 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

带有 Qt/QML 应用程序的 Windows 7 中的自定义触摸行为

Windows 上 Webview 的 Qt QML 后备组件

是否可以为 android 编译 Qt+QML+OpenCV 应用程序

用于 Android 错误的 Qt QML

在QT / QML中是否有IOS的visibleMapRect?

如何为Java程序创建MSI Windows安装程序?