GUI框架是如何实际开发的

时间:2011-04-13 12:22:04

标签: cocoa qt user-interface gtk

我主要从事Web开发,但偶尔会做一些C / C ++或Java编程。我很好奇这些框架如何实际生成GUI中使用的图形。如果设计师在Photoshop中设计了GUI元素(标题栏,窗口框,状态栏,按钮等等),那么开发人员会将该图形添加到框架中吗?或者开发人员实际上是按照设计师的方向以编程方式构建元素?

如果有人可以给我一个很棒的概述!

2 个答案:

答案 0 :(得分:3)

很棒的问题,云雀!由于我们在Qt Framework分支中,我会告诉你它是如何在Qt中完成的,但我确信你可以应用于类似的框架或库,如GTK等。

因此,Qt启动了一个框架,可以为各种平台提供一个API,从而可以非常轻松地将应用程序从一个平台移植到另一个平台,同时在这些平台上提供原生外观。因此,例如在MacOSX上,按钮将具有这种蓝色Aqua样式,而在Windows XP上,它看起来就像Windows平台上的按钮。奇趣科技付出了很多努力,并且在使GUI看起来很原生方面做得很好。它是如何工作的?好吧,所有Qt小部件都使用QStyle及其衍生物来渲染自己。根据样式,小部件看起来会有所不同。所有标准小部件都遵循它们所针对的平台的指南。可能背后有一些小型图形设计师的工作,但我相信它并不那么重要。外观的主要来源是平台指南,它描述了这些平台上的UI元素应该是什么样子以及它们的行为。

但Qt的发展速度非常快,而且巨魔带来了一种非常有前景的技术Qt Quick。它是一项令人惊叹的技术,它允许设计人员和开发人员紧密合作,提供最佳UI它非常注重使用Photoshop,GIMP或代码中的类似工具制作的艺术作品。使用Qt Quick而不是使用C ++ / Qt的设计人员更容易使用Qt Quick,因此Qt Quick最初是为此而设计的。

希望有所帮助

答案 1 :(得分:1)

大多数GUI框架的基本低级功能是相当陈旧的,这是早期开发人员使用原语进行大量非常艰苦的工作的结果 - 在终端屏幕上绘制内容等,使用C或非常低的级别汇编。慢慢地,用于抽象这些进程的库,以及用于改进它们和组织的框架和类层次结构应运而生。所有Linux GUI(事实上,几乎所有当代GUI框架)都基于XWindows,例如:

  X起源于麻省理工学院(麻省理工学院)   自1987年9月以来,协议版本一直是X11 .... X主要定义协议和图形原语 - 故意   不包含应用程序用户界面设计的规范   作为按钮,菜单或窗口标题栏样式。相反,申请   软件 - 例如窗口管理器,GUI小部件工具包和桌面   环境或特定于应用程序的图形用户界面 -   定义并提供此类详细信息。结果,没有典型的X.   界面和几个不同的桌面环境已成为   在用户中很受欢迎。

在那里查看更多信息,了解有关此主题的一些有用信息。