user-interface - GUI是如何真正制作的?

标签 user-interface operating-system low-level

我的问题是
像 Qt 这样的 Gui 库,可以说用于 Windows 操作系统
他们如何创建所有这些图形用户界面(Windows 等)。

每个操作系统是否提供API或其他东西来这样做?如果是,那么操作系统如何绘制所有这些窗口和东西。它们(操作系统)是否“控制”屏幕然后逐个绘制每个像素以实现其目标图形用户界面?

我想要一个可以在最低级别解释事情的答案,但是我不要求有人给我写发生的所有事情(即使我愿意),因为我知道所有这些背后都有很多事情。因此,评论带有链接或建议的书籍,用 解释详情
关于幕后发生的事情将不胜感激。

最佳答案

Stackoverflow 的答案不应该使用链接,评论可以但不能回答。

每个操作系统和 gui 库都是不同的,但是,是的,它们确实以某种方式、形状或形式绘制了每个像素。它通常非常有条理,并且使用了许多性能解决方案,可以更新矩形或屏幕的某些 block 的优化例程,有时会涉及到硬件(这些天很多时候硬件或基本上是 gpu 参与 cpu 询问 gpu绘制一些东西然后gpus正忙于放置所有像素)。

例如,您可能希望创建某种字体渲染函数,该函数给定字体、要显示的字符串、字体大小,也许还有一个不能超出的剪辑窗口,或者可能是一个具有字体、大小和字符串返回像素数,然后您可以调整字符串以适应和换行(例如,环顾此网页,将窗口拖得更宽和更窄,并观察网络文本的作用)。

绝对是某种图像绘制例程,能够将绘图拉伸(stretch)或适合定义的矩形。

随着时间的推移,有趣的东西、游戏等得到了如此迅速的改进,以至于很难回到简单的线条绘制和区域填充例程等。但随着技术的发展,游戏带来了简单的东西,比如网页受益......再次环顾四周。

有许多开源程序和库,您应该只是在源代码中四处逛逛,看看您所看到的。

关于user-interface - GUI是如何真正制作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002308/

相关文章:

C 静态和自动分配

operating-system - 内容类型与 MIME 类型

c - waitpid 与 WUNTRACED

c - 非常简单的地穴程序错误

java - 使用 Java 获取全局键盘输入

java - 自定义字体和 XML 布局 (Android)

c++ - 如何在 Qt 中创建类似 Textmate 的侧面板

objective-c - 如何在图像的两个角上做卷页效果

c++ - Qt 模拟循环

python - Python 中的按位减法