XML 文档如何与 GTK 一起创建用户界面?
How does XML document work with GTK to create user interface?
我现在正在做一个 C/GTK+3 项目。我对前端有一点经验,但主要是 Android。即便如此,那也是非常少的经验。
我注意到在 C 代码中我放置了对象并设置了属性(比如文本视图是否可编辑等)。我还能够使用 builder 函数将 .ui XML 文件连接到我的程序。
我想知道 XML 文件如何链接到定义接口的 C 代码。它是否按结构、名称或 ID 属性匹配?为什么像 "visible" 和 "editable" 这样的属性同时存在于 C 代码和 XML 中?您需要 XML 文件吗?您需要在 XML 文件和 C 代码中指定属性还是只指定一个?我会完全理解前端开发吗?
有两种构建用户界面的方法:
- 您为其编写代码。
- 您编写一个描述用户界面的文件,并在运行时为您提供用户界面。
如果您自己编写代码,每次您想要移动小部件时,您都必须修改您的代码,您需要编译这些代码。这对于小型 UI 是可行的,并且是大多数教程中所做的。
如果您使用 ui 文件,那么您可以使用 Glade 应用程序以图形方式设计您的 UI,它会为您编写 UI 文件。这也有助于分担责任:您可以让设计人员负责 UI,让开发人员专注于行为。即使没有它,您也可以使用像 Glade 这样的编辑器比手动编码更快地设计 UI。认为您跳过了所有 compile/debug 个周期。
在您的 ui 文件中,如果您将 wigdet 命名为 "bob",您可以通过将其名称传递给 gtk_builder_get_object
来在您的代码中获取它。 GtkBuilder
负责构造和内存,因此如果您需要再次显示它们,请不要破坏它创建的小部件,而是隐藏它们。
您在 GTK 文档中有使用 UI 文件的示例:
https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5
我现在正在做一个 C/GTK+3 项目。我对前端有一点经验,但主要是 Android。即便如此,那也是非常少的经验。
我注意到在 C 代码中我放置了对象并设置了属性(比如文本视图是否可编辑等)。我还能够使用 builder 函数将 .ui XML 文件连接到我的程序。
我想知道 XML 文件如何链接到定义接口的 C 代码。它是否按结构、名称或 ID 属性匹配?为什么像 "visible" 和 "editable" 这样的属性同时存在于 C 代码和 XML 中?您需要 XML 文件吗?您需要在 XML 文件和 C 代码中指定属性还是只指定一个?我会完全理解前端开发吗?
有两种构建用户界面的方法:
- 您为其编写代码。
- 您编写一个描述用户界面的文件,并在运行时为您提供用户界面。
如果您自己编写代码,每次您想要移动小部件时,您都必须修改您的代码,您需要编译这些代码。这对于小型 UI 是可行的,并且是大多数教程中所做的。
如果您使用 ui 文件,那么您可以使用 Glade 应用程序以图形方式设计您的 UI,它会为您编写 UI 文件。这也有助于分担责任:您可以让设计人员负责 UI,让开发人员专注于行为。即使没有它,您也可以使用像 Glade 这样的编辑器比手动编码更快地设计 UI。认为您跳过了所有 compile/debug 个周期。
在您的 ui 文件中,如果您将 wigdet 命名为 "bob",您可以通过将其名称传递给 gtk_builder_get_object
来在您的代码中获取它。 GtkBuilder
负责构造和内存,因此如果您需要再次显示它们,请不要破坏它创建的小部件,而是隐藏它们。
您在 GTK 文档中有使用 UI 文件的示例: https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5