带有 OpenGL 上下文的基于 Qt 的命令行工具

Posted

技术标签:

【中文标题】带有 OpenGL 上下文的基于 Qt 的命令行工具【英文标题】:Qt based Command Line Tool with OpenGL Context 【发布时间】:2013-12-03 22:47:12 【问题描述】:

是否可以在不创建任何窗口系统(例如 QWindow)的情况下使用 Qt 创建 OpenGL 上下文?

我想编写一个使用 OpenGL 和 Qt 5.1 的命令行工具,我目前使用 QOpenGLContext 和 QWindow 创建一个上下文。我没有打开窗口,但应用程序仍然在 OS X 的 Dock 中打开。

【问题讨论】:

【参考方案1】:

在没有 GUI 的情况下使用 Qt

Qt 可以在没有 GUI 的情况下使用。要创建一个显示没有QWindow 的OpenGL 窗口的窗口,您需要将.pro 文件更改为不包含gui 模块,然后告诉它包含控制台。

QT -= gui # Only the core module is used.
CONFIG += console 

How do I create a simple Qt console application in C++?

当你从 Qt Creator 调试时,你可能需要进入 Project > Run 并告诉它Run in Terminal,否则它可能只存在于应用程序输出区域。

http://qt-project.org/doc/qt-5.1/qmake/qmake-project-files.html#declaring-qt-libraries

您可能需要找到其他一些窗口框架来展示您的 opengl 优点。根据您查看的示例,有时他们使用 glut 或 opencv。

我不确定 opengl 库与 QWindow 和其他 QtGUI 或 QtWidgets 内部的联系有多紧密。如果在您移除 Qt GUI 后它们没有加载,您可能需要从另一个库中获取 opengl。

LIBS += -lopengl #or some other things to use the library from somewhere else

希望对您有所帮助。

【讨论】:

以上是关于带有 OpenGL 上下文的基于 Qt 的命令行工具的主要内容,如果未能解决你的问题,请参考以下文章

带有 OpenGL 的 Qt MDI 应用程序:如何获取有效的屏幕截图?

在 OS X 上的 Qt 4.8.6 中更改 QGLWidgets 的 OpenGL 上下文版本

树莓派上的 Qt OpenGL 上下文

在 Qt 中创建原始 GL 上下文?

将绑定到 FBO 的纹理复制到另一个 OpenGL 上下文

如何使用 Qt 4 创建 OpenGL 3 上下文?