MS Windows 中的 QT 和原生 OpenGL 支持

Posted

技术标签:

【中文标题】MS Windows 中的 QT 和原生 OpenGL 支持【英文标题】:QT and native OpenGL support in MS Windows 【发布时间】:2014-11-08 02:52:20 【问题描述】:

我正在尝试通过 QT 插件在 MS Visual Studio 2013 中导入 cube 示例。

不幸的是,在尝试打开 .pro 文件时,我收到以下错误:

Project ERROR: This example requires Qt to be configured with -opengl desktop

在网络上做了一些研究,我意识到默认情况下 QT OpenGL 支持是基于 ANGLE-library 构建的,我意识到这是一种 OpenGL 到 DirectX9.0 的转换器。

因此,我有两个选择 (link):

    安装 ANGLE。 使用选项 -opengl desktop 重新编译 QTv5.3。

问题是我通过QT online installer for windows安装了QTv5.3。

问:

考虑到上述情况,当我通过 Windows 在线安装程序安装 QTv5.3 时,我应该如何使用原生 OpenGL 支持(即使用-opengl desktop 选项)重新编译 QTv5.3?

【问题讨论】:

【参考方案1】:

虽然您可以使用任何您希望的标志自行编译它,但还有一个更简单的选项。 Qt 在线安装程序提供了多种发行版:不同版本的 Qt,针对不同的目标,支持或不支持 OpenGL。

安装 Qt 5.3.2 MSVC 2013 OpenGL 的最简单方法:

运行<QT_FOLDER>\MaintenanceTool.exe(如果您还没有安装Qt,则运行在线安装程序) 选择Package manager,按NextQt->5.3 下检查msvc2013 32-bit OpenGL(以及您需要的任何其他版本) 请按Next...

它将安装在<QT_FOLDER>\msvc2013_opengl

那么您可能需要将Visual Studio AddIn 指向正确的Qt 文件夹(它可以携带多个版本)。

结交 Qt 和 MSVC 朋友的最简单方法

您可以通过运行 qmake 从 Qt 项目 .pro 文件轻松生成 Visual Studio .vcxproj 文件。无需任何插件。

为此:

打开VS2013 x86 Native Tools Command Prompt(或使用"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86设置路径)

将所需的 Qt 版本添加到路径:

set PATH=%PATH%;<QT_FOLDER>\msvc2013_opengl\bin

进入Qt项目文件夹并生成MSVC项目:

cd <pro_folder>
qmake -tp vc
您会在同一个文件夹中找到一个 .vcxproj 文件,其中包含所有 Qt 的花里胡哨(moc'ing、uic'ing、rcc'ing 等),就像构建事件一样设置 每当您更改.pro 文件时重复此操作。每次重新加载.vcxproj(无需关闭Visual Studio;它会在检测到更改时要求您重新加载)。将.vcxproj 视为临时生成的文件,不要手动更改它。调整 .pro 中的所有内容。

提示:写入.bat 文件以自动完成所有这些工作。

HTH

【讨论】:

感谢,对于更高版本(5.15.2),您可以在 Qt > Developer and Designer Tools > ...OpenGL Runtime... for x 下的包管理器中找到它【参考方案2】:

您需要下载并构建32-bit version 或64-bit version。

我是从头开始构建的,但用于 ANGLE,而不是 OpenGL。

This page 应该在你决定去哪个方向之前阅读。

【讨论】:

以上是关于MS Windows 中的 QT 和原生 OpenGL 支持的主要内容,如果未能解决你的问题,请参考以下文章

使用 Qt 制作几乎原生的 Windows 应用程序?

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

QT ODBC 驱动程序 .mdb ms-access 插入在 1000 行以上时不起作用(Windows)

Linux 用户应该使用哪种 IDE/编译器组合在 Windows 上构建 Qt 应用程序,同时避免使用 MS Visual Studio?

qt中getopenfilename设置中文按钮

使用 QT 中的参数启动 cmd open***-gui