窗口化需要QT OpenGL for Desktop吗?

时间:2014-03-25 10:25:05

标签: c++ qt opengl

在没有OpenGL支持的情况下编译QT 5.2.1我有点不确定。我一直认为希望绘制图形的应用程序需要OpenGL,但是当我阅读文档时,也会讨论2D桌面功能。如果我不打算使用任何图形并且只想使用QT的窗口框架,我还需要桌面支持吗? 以某种方式将它作为可选组件允许它是没有意义的,但我不知道是否需要它,因为我不知道这种支持将用于什么。

所以主要的问题是,如果我只想实现一个使用Windows和小部件的常规桌面应用程序,我不需要使用OpenGL支持进行编译,对吗?

到目前为止,我已经使用wxWidgets作为我的跨平台库,而且从不需要触摸OpenGL,所以我会以同样的方式使用QT。

3 个答案:

答案 0 :(得分:1)

  

如果我只是想实现一个使用Windows和小部件的常规桌面应用程序,我不需要使用OpenGL支持进行编译,对吧?

我认为答案是肯定的;虽然在应用级别,例如this thread专门调用,但从第5章开始,不建议将图形子系统设置为栅格-graphicssystem raster,您可以set the window's surface typeRasterSurface,这允许使用QBackingStore(非OpenGL绘图上下文)使用没有OpenGL支持的栅格渲染; its API doc证实了这一点。 QWindow's documentation也对此进行了简要介绍。

  

如果我不打算使用任何图形并且只想使用QT的窗口框架,我还需要桌面支持吗?

是的,如果您需要QML and Qt5's QtQuick 2 render or QtGui which exclusively use OpenGL并且是Qt图形系统的核心部分。不,如果你能做到没有任何这些。这个Qt 5 Raster Window sample就是这样做的;你可以注意到项目文件中没有提到OpenGL。

答案 1 :(得分:1)

答案是:它很复杂。如果没有OpenGL依赖关系,QtCore将非常愉快地运行,但是在Qt5中,由于性能原因,他们将小部件系统大量转向使用OpenGL(ES)。通过Qt文档找到答案有点困难,但是如果你只想用QtWidgets构建Qt5应用程序,你可以在configure语句中指定没有OpenGL,你会没事的。如果您希望使用QML,那么您需要OpenGL依赖才能使其正常工作,但QtWidget系统现在已经有效完成,因此不会很快得到改进。

答案 2 :(得分:0)

只有当你想使用glWidget时才需要OpenGL模块,对于你不需要它的经典桌面应用程序。