这个问题一直困扰着我这么久。我仍然是一个初学者,但我通过谷歌看,仍然无法找到答案。我只发现了一条线索,我不知道如何实现它。如何从回调函数获取另一个窗口的窗口小部件的指针 - GTK - C
假设您打开了两个顶级窗口。你点击其中一个按钮,你想要摧毁另一个窗口。
这是我的第一个非功能性的解决方案:
Void on_button1_clicked (GtkWidget *widget, gpointer user_data)
{
GtkWidget *window2;
window2 = lookup_widget (widget, "window2");
gtk_widget_destory (window2);
}
那么,它没有工作。我明白“lookup_widget”函数并不在与包含“button1”的窗口关联的树层次之外。因为“widget”指的是“button1”。 所以,我想我会得到“window1”的指针,并使用它,而不是思考window1是在一个更高的层次结构。
GtkWidget *window1;
GtkWidget *window2;
window1 = lookup_widget (widget, "window1");
window2 = lookup_widget (window1, "window2");
gtk_widget_destroy (window2);
而令我惊讶的是它没有工作。这也可以说是关于改变其他窗口的标签,因为我无法在信号事件发生的窗口之外找到窗口小部件的指针。
伙计们,我需要帮助!
什么是'lookup_widget()'? – andlabs
@andlabs它是一个gtk函数,您可以在支持中找到它。c 它返回给定两个参数的小部件的指针值。第一个是指向您正在寻找的小部件的同一树内的小部件的指针。第二个参数是一个包含要找到的小部件名称的字符串。 – Elyes
你指的是哪一个support.c? – andlabs