【问题标题】:Which graphics technology does Qt uses to render its custom UI?Qt 使用哪种图形技术来呈现其自定义 UI?
【发布时间】:2015-09-13 03:29:42
【问题描述】:

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

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

还有一些基于 Directx/opengl 的解决方案,比如 MyGUI 和 CEGUI,但我认为它们看起来很丑,与 Qt 的外观相去甚远。

【问题讨论】:

  • CEGUI 和 MyGUI 看起来和你做的一样丑,你应该在使用这些库时创建自己的皮肤。也就是说,CEGUI 有多种开箱即用的皮肤,论坛上还有更多可用的皮肤,等等。

标签: c++ qt opengl directx


【解决方案1】:

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

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

【讨论】:

  • 如何使用opengl渲染模型?
  • 如果不提供有关此“新后端”的更多信息/资源,此答案有点用处。我们在哪里可以找到更多关于它的信息?
猜你喜欢
  • 1970-01-01
  • 2022-01-10
  • 2023-03-29
  • 2011-01-17
  • 1970-01-01
  • 2011-03-26
  • 2010-10-07
  • 2013-10-16
  • 2010-09-12
相关资源
最近更新 更多