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

5
我使用窗口检测工具检查了Qt GUI界面,我知道它不使用Windows公共控件或任何自定义窗口类来创建其UI元素和动画效果。我曾在这里询问过使用GDI/GDI+开发自定义GUI框架的问题,但大多数人反对这些技术,因此问题仍然存在:Qt或其他等效系统使用哪种图形技术来渲染其UI?
我知道DirectX/OpenGL,但对于简单的要求来说是否过于复杂了呢?如果答案是上述之一,那么我又想知道如何使用这些多边形渲染技术实现强大的字体渲染和矢量图形解决方案?全功能文本编辑器另一个巨大的挑战。
此外,已经存在基于DirectX/OpenGL的解决方案,如MyGUI和CEGUI,但我认为它们看起来很丑陋,并且远远不及Qt的外观。

CEGUI和MyGUI的外观取决于你的设计,当你使用这些库时,你应该创建自己的皮肤。话虽如此,CEGUI默认提供了多种皮肤,并在论坛等地方提供了更多的皮肤选择。 - Ident
1个回答

7
首先,Qt-5引入了一种新的渲染模型,可以(但不是必须)使用OpenGL来渲染UI元素。这意味着,人们可以真正地将自定义的OpenGL渲染与Qt小部件混合使用。缺点是,需要某种形式的OpenGL支持,而并非所有系统都具备此功能。
因此,Qt还有另外两种绘图系统:本机绘图系统会使用主机系统的本机图形原语(GDI、CoreGraphics、X11/XRender),而光栅则会将整个窗口完全光栅化到像素缓冲区中,然后只有这些缓冲区才被复制到底层图形系统中。 光栅是最慢的图形后端,但它为所有平台和目标系统提供了一致的结果。因此,光栅通常用于严格要求外观一致的程序。

2
如何使用OpenGL渲染模型? - ArmenB
1
如果没有提供更多关于这个“新后端”的信息/资源,这个答案就有点无用了。我们在哪里可以找到更多相关信息呢? - Petr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接