GTK +通过控件ID查找GTKWidget

时间:2011-03-23 07:45:36

标签: c++ c gtk

有没有办法通过控制名称/或id从c / c ++的当前窗口范围内找到GTKWidget?

在Winforms中,你有类似的东西:

public class Form1 : Form
{
    public void Test()
    {
      this.Controls.Find("ControlName");
    }
}

2 个答案:

答案 0 :(得分:1)

您可以使用gtk_widget_set_name()在窗口小部件上设置名称,但我认为没有内置函数可以根据名称在层次结构中查找窗口小部件。

但是,如果你有需要的话,写起来并不难。

正如Micah指出的那样,并不是GTK +应用程序通常是如何构建的,对于手动构建的UI来说,从创建时起保持指向所需小部件的方式更为常见:

答案 1 :(得分:0)

在GTK +中,我们使用在相关回调函数中作为用户数据传递的变量(或struct / class / etc.)存储我们可能需要在以后的代码中访问的任何窗口小部件的引用。如果您正在使用UI构建器(例如glade),那么可以使用您在UI构建器中为其指定的名称来引用窗口小部件。否则,答案是没有办法像这样“找到”小部件。

如果你能提供一个更具体的例子,我可以详细说明。