【发布时间】:2012-05-04 16:16:39
【问题描述】:
如下例所示,这个回调函数是当用户点击确定按钮时。我可以使用 gtk_widget_get_toplevel 从按钮获取窗口(顶级小部件),但我一直在尝试获取名称为 ENTRY 的 GtkEntry 小部件的小部件指针。
/* Called when OK button is clicked */
on_BT_OK_clicked(GtkButton *button, gpointer user_data)
{
//The line directly below is the one I get an error on
GtkWidget *entry = lookup_widget( GTK_WIDGET(button), "ENTRY" );
gchar *text1, *text2;
text1 = gtk_entry_get_text( GTK_ENTRY(entry));
text2 = g_strconcat("Hello, ", text1, NULL);
GtkWidget *window = gtk_widget_get_toplevel (GTK_WIDGET(button));
GtkWidget *dialog = gtk_message_dialog_new( window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
text2);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
但我收到错误“未定义对 lookup_widget 的引用”。我可以使用lookup_widget 找到十亿个sn-ps 代码示例,但没有一个完整的源代码示例显示支持使用它的标头。我正在使用 Anjuta3.2.0 和最新的 Glade 插件。
【问题讨论】:
-
lookup_widget不能是 GTK 的公共函数。他们都有gtk作为前缀。 -
好的,所以我的问题是错误的。 lookup_widget 是一个 Glade 实用函数。有谁知道要包含的正确标题,以便我可以使用此 Glade 实用程序功能?
-
lookup_widget似乎是 Glade 生成 的函数;您是否在生成的文件中搜索过它? fifi.org/doc/glade-common/help/glade/C/faq/index.html -
如链接部分 1.4.5 所示,使用 glade API。 @BasileStarynkevitch:也许您应该使用链接中提到的建议替代方法将其发布为答案。
标签: c gtk header-files