5

我的问题是
Qt 之类的 Gui 库,让我们说 Windows 操作系统如何创建所有这些图形用户界面(Windows 等)。

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

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

4

2 回答 2

1

操作系统提供与监视器/显示器接口的库。简而言之,Qt 之类的 GUI 库与操作系统的这些库进行交互,并为您(程序员)与监视器交互创建了一个更容易的桥梁。例如,Qt 可能有一个 drawLine 功能,它在下面负责处理与在操作系统的监视器/显示器上绘图相关的像素排列。

于 2013-06-25T18:43:31.093 回答
0

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

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

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

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

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

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

于 2013-06-20T21:09:08.233 回答