Qt使用哪种图形技术来呈现其自定义UI?

时间:2015-06-26 08:45:31

标签: c++ qt opengl directx

我使用窗口间谍工具检查了Qt GUI界面,我知道它不使用Windows公共控件或任何自定义窗口类来创建其UI元素和动画效果。我之前曾问过如何使用GDI / GDI +开发自定义GUI框架,但是大多数人都反对这些技术,所以问题仍然是图形技术Qt或任何其他等效的appropriator系统用来呈现他们的UI?

我知道DirectX / OpenGL但是对于简单的要求是不是太过分了?如果答案将是上述之一那么我又想知道如何使用这些多边形渲染技术实现强大的字体渲染和矢量图形解决方案?全功能的文本编辑器是另一个巨大的挑战。

此外,已存在基于directx / opengl的解决方案,如MyGUI和CEGUI,但我认为它们看起来很难看,而且远不及Qt的外观。

1 个答案:

答案 0 :(得分:5)

首先,Qt-5引入了一种新的渲染模型,它可以(但不是必须)使用OpenGL渲染UI元素。这样做的结果是,可以真正将自定义OpenGL渲染与Qt小部件混合在一起。缺点是,需要某种OpenGL支持,并非所有系统都支持。

所以Qt还有另外两个绘图系统:Native,它将使用主机系统本机图形基元(GDI,CoreGraphics,X11 / XRender)和 raster 来完成整个光栅化窗口进入像素缓冲区,然后只有那些窗口嵌入到底层图形系统。 raster 是图形后端中最慢的,但它为所有平台和目标系统提供了一致的结果。因此, raster 通常用于严格要求一致外观的程序。