是否使用C+编写桌面GUI(图形用户界面)+;,C#、Java等使用DOM或类似的概念,就像所有web或移动GUI一样?

是否使用C+编写桌面GUI(图形用户界面)+;,C#、Java等使用DOM或类似的概念,就像所有web或移动GUI一样?,java,c#,c++,user-interface,dom,Java,C#,C++,User Interface,Dom,深入理解和使用文档对象模型(DOM)的概念,为web和移动应用程序创建各种GUI是非常常见的。我想知道,无论是桌面、嵌入式系统、其他电子设备等的GUI(用C++、C语言、java、python等编程)使用DOM或类似的“对象模型”与API(应用编程接口)的概念,以便“渲染和显示”。屏幕上的视觉和图形内容?有很多方法可以做到这一点。图形操作系统通常提供一个或多个小部件工具包,其中可以包括配置文件、绑定引擎,或者只是创建各种小部件的API。窗口系统的行为有点像浏览器环境 在图形游戏和其他不太受操作系

深入理解和使用文档对象模型(DOM)的概念,为web和移动应用程序创建各种GUI是非常常见的。我想知道,无论是桌面、嵌入式系统、其他电子设备等的GUI(用C++、C语言、java、python等编程)使用DOM或类似的“对象模型”与API(应用编程接口)的概念,以便“渲染和显示”。屏幕上的视觉和图形内容?

有很多方法可以做到这一点。图形操作系统通常提供一个或多个小部件工具包,其中可以包括配置文件、绑定引擎,或者只是创建各种小部件的API。窗口系统的行为有点像浏览器环境

在图形游戏和其他不太受操作系统限制的应用程序中,您通常会在GPU加速的界面上编写自己的widgeting工具包,或者使用为您编写的图形工具包。推出多个游戏或类似游戏的公司将有一个代码库,使他们的游戏UI风格更容易站稳脚跟。这更接近于推动像素;但是,如果你想要良好的性能和良好的过渡,你实际上经常会把几何体推到GPU代码中,而不是像素

在CPU上的4k监视器上设置60 fps平滑过渡动画是不切实际的;很快做GPU是很容易的。因此,无法轻松与GPU交互的语言往往最终由中间库或框架来完成

其他程序实际上会有一个嵌入式的chrome引擎,输出HTML并将回调绑定到其中


如果您的UI更为静态,那么从CPU推出像素是可行的。即使如此,内容通常也会被OS/windowing框架复制到GPU上,因此抓取整个窗口并将其移动是平滑而廉价的。

这是一个非常广泛的问题,无法回答。有些GUI库类似于DOM,有些则不然。几乎任何操作系统级的GUI都比任何类型的抽象(如DOM)都要低。有很多种类,有软件呈现的UI,也有硬件呈现的UI(在较低的级别上可能直接操作像素数据)。对于Windows,基于GDI(Winforms,winapi)的API使用绘制事件重新绘制屏幕的一部分,要求每个控件绘制自身,自定义控件可以绘制形状、线条、文本或图像。感谢您的回答。我非常欣赏您所强调的各种呈现GUI的方法。我认为DOM是呈现视觉效果和GUI的唯一方式或默认标准。我现在意识到还有其他几种方法可以做到这一点。