GUI是如何制作的?

时间:2013-06-08 18:00:35

标签: user-interface operating-system low-level

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

每个操作系统是否提供API或其他内容?如果是,那么操作系统如何绘制所有这些窗口和东西。他们(操作系统)“控制”屏幕然后逐个绘制每个像素实现GUI的目标?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

你可能想要创建某种字体渲染功能,给出字体,要显示的字符串,字体大小,以及可能不在外面的剪切窗口,或者可能是带有字体的函数,size和string返回像素数,然后你可以调整字符串以适应和包装(例如,环顾这个网页,拖动窗口更宽更窄,观察网页文字的作用)。

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

有趣的东西,游戏等随着时间的推移已经有了很快的改进,很难回到简单的线条绘制和区域填充例程等。但是随着技术的发展,游戏带来了简单的事情,比如网页受益......再看看。

有许多开源程序和库,您应该浏览源代码,看看你看到了什么。