有没有办法通过控制名称/或id从c / c ++的当前窗口范围内找到GTKWidget?
在Winforms中,你有类似的东西:
public class Form1 : Form
{
public void Test()
{
this.Controls.Find("ControlName");
}
}
答案 0 :(得分:1)
您可以使用gtk_widget_set_name()
在窗口小部件上设置名称,但我认为没有内置函数可以根据名称在层次结构中查找窗口小部件。
但是,如果你有需要的话,写起来并不难。
正如Micah指出的那样,并不是GTK +应用程序通常是如何构建的,对于手动构建的UI来说,从创建时起保持指向所需小部件的方式更为常见:
答案 1 :(得分:0)
在GTK +中,我们使用在相关回调函数中作为用户数据传递的变量(或struct / class / etc.)存储我们可能需要在以后的代码中访问的任何窗口小部件的引用。如果您正在使用UI构建器(例如glade),那么可以使用您在UI构建器中为其指定的名称来引用窗口小部件。否则,答案是没有办法像这样“找到”小部件。
如果你能提供一个更具体的例子,我可以详细说明。