cocoa - GUI框架实际上是如何开发的

标签 cocoa qt user-interface gtk

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

如果有人能给我一个概述,那就太棒了!

最佳答案

好问题,Lark!由于我们处于 Qt Framework 分支,我将告诉您它是如何在 Qt 中完成的,但我确信您可以应用于类似的框架或库,如 GTK 等。

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

但是 Qt 发展得非常快,巨魔们带来了一项非常有前途的技术,称为 Qt Quick 。这是一项令人惊叹的技术,可以让设计师和开发人员紧密合作,提供最佳的 UI。它高度注重在代码中使用 Photoshop、GIMP 或类似工具制作的图稿。使用 Qt Quick 比使用 C++/Qt 更容易使用设计师提供的模型,因为 Qt Quick 最初就是为此设计的。

希望有帮助

关于cocoa - GUI框架实际上是如何开发的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5649120/

相关文章:

objective-c - 当需要 unsigned int 时返回 unsigned long 的后果

qt - 静态编译 QWebKit 4.6.2

python - 启动时仅显示 python 程序而不是 linux gui

qt - 如何让 QWidget 扩展到 QTabWidget 中的整个选项卡?

iphone - 如何在 Cocoa Touch 中验证网站证书?

macos - nextKeyView 切换到 NSBrowser 并在工具栏中搜索 View

objective-c - 收听我的文本字段的值更改

c++ - MinGW 在 Windows XP 上失败

python - 为 GUI 开发设置 PySide/Qt

ios - Xcode:Table View Cell 不会自动调整其高度