C XML文档如何与GTK一起创建用户界面?

C XML文档如何与GTK一起创建用户界面?,c,xml,gtk,C,Xml,Gtk,我现在正在做一个C/GTK+3项目。我对前端有一点经验,但主要是Android。即使在那时,这也是非常少的经验 我注意到在C代码中我放置了对象并设置了属性(比如textview是可编辑的等等)。我还能够使用builder函数将.ui XML文件连接到我的程序 我想知道XML文件是如何链接到定义接口的C代码的。它是否按结构、名称或ID属性匹配?为什么像“可见”和“可编辑”这样的属性同时出现在C代码和XML中?您需要XML文件吗?您需要在XML文件和C代码中都指定属性,还是只指定其中一个?我会完全理

我现在正在做一个C/GTK+3项目。我对前端有一点经验,但主要是Android。即使在那时,这也是非常少的经验

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


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

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

  • 你为它写代码
  • 您编写了一个描述用户界面的文件,并在运行时为您构建了用户界面
  • 如果您自己编写代码,那么每次您想要移动小部件时,您都必须修改您需要编译的代码。这对于一个小UI是可行的,大多数教程都是这样做的

    如果您使用ui文件,那么您可以使用应用程序以图形方式设计ui,它将为您编写ui文件。这也有助于划分责任:您可以让设计人员负责UI,让开发人员专注于行为。即使没有它,使用Glade这样的编辑器设计UI的速度也比手工编写要快。认为您跳过了所有编译/调试周期

    在您的ui文件中,如果您将wigdet命名为“bob”,则可以通过将其名称传递给来在代码中获得它
    GtkBuilder
    负责构造和内存,因此如果需要再次显示它创建的小部件,请不要破坏它们,而是将它们隐藏起来

    GTK文档中有使用UI文件的示例:

    很久以前,我从gtkmm 2.x切换到了Qt(因为gtkmm3和Windows在一起工作不太好),但问题似乎仍然存在。它可以用于读取UI文件,但您也可以“内联”提供字符串形式的XML代码。还可以找到其他内容:顺便说一句,您不需要UI文件或
    GTKUIManager
    -实际上是为了方便。我们通常在C++代码中创建所有的小部件,EHEM,在C代码中。或者,你想要什么?(很抱歉,没有经验-一点也没有。)听说我不需要UI文件/GTKUIManager,我感到非常欣慰!我没有使用glade,但我只是在学习教程(实际上是你发布的填充窗口的教程),作为UI的初学者,我想知道所有这些XML文件在哪里绑定以及如何绑定。请参阅例如。该页面提供了带和不带UI定义的示例。谢谢!这真的让我明白了,我很感激!