c - XML 文档如何与 GTK 一起工作来创建用户界面?

标签 c xml gtk

我现在正在做一个 C/GTK+3 项目。我对前端有一点经验,但大多只使用 Android。即便如此,那也是非常少的经历。

我注意到在 C 代码中我放置对象并设置属性(例如 TextView 是否可编辑等)。我还能够使用构建器函数将 .ui XML 文件连接到我的程序。

我想知道 XML 文件如何链接到定义接口(interface)的 C 代码。它是否按结构、名称或 ID 属性匹配?为什么 C 代码和 XML 中都存在“可见”和“可编辑”等属性?您需要 XML 文件吗?您需要同时指定 XML 文件和 C 代码中的属性还是只指定一个?我会完全了解前端开发吗?

最佳答案

有两种构建用户界面的方法:

  • 你为它写代码。
  • 您编写一个描述用户界面的文件,并在运行时为您构建用户界面。

  • 如果您自己编写代码,那么每次您想要移动小部件时,您都必须修改您需要编译的代码。这对于小型 UI 是可行的,并且在大多数教程中都是这样做的。

    如果你使用 ui 文件,那么你使用 Glade应用程序以图形方式设计您的 UI,它会为您编写 UI 文件。这也有助于划分职责:您可能让设计人员负责 UI,并让开发人员专注于行为。即使没有这些,您也可以使用 Glade 等编辑器更快地设计 UI,而不是手动编码。认为您跳过了所有编译/调试周期。

    在您的 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 - XML 文档如何与 GTK 一起工作来创建用户界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557929/

    相关文章:

    python - 在 SLD 中添加一个新的过滤器

    在 C 中转换多种不同的数据类型

    c - 从 C 线程中的函数返回一个值

    c - 帮助 gcc 不警告不使用字符串文字格式字符串

    c++ - 在 GTK+ 中使用 GtkTreeView 的一些问题 [警告]

    GTK+ 3 的 Ruby 绑定(bind)?

    python - 如何连贯地组织 PyGTK 桌面应用程序的模块?

    c - 初学者 C 程序 - 如何从字谜程序中的循环返回必要的输出?

    sql - XML 数据类型方法 “value” 必须是字符串文字

    swift - 快速解析 XML 数据