我很不知道GTK + Glade3编程的语法是怎样的。 但是现在我正在尝试制作一个简单的程序,当我点击一个按钮时改变文本
void on_CLICK_clicked (GtkButton *button, gpointer user_data)
{
GtkWidget *text = lookup_widget(GTK_WIDGET(button), "entry1");
gtk_entry_set_text(GTK_WIDGET(text), "Hello");
}
我有这些令人担忧的错误,我不知道如何解决:
函数'lookup_widget'的隐式声明[也解释了对'lookup_widget'的未定义引用]
从不兼容的指针类型
传递gtk_entry_set_text'的参数1
答案 0 :(得分:2)
lookup_widget()
仅用于Glade 2生成的代码。 Glade 2用于生成包含该函数和其他函数的文件support.c
。这不再使用了。现在,当您在Glade 3中连接clicked
信号时,您可以将条目小部件指定为用户数据参数,因此您可以执行以下操作:
void on_CLICK_clicked (GtkButton *button, GtkEntry *text)
{
gtk_entry_set_text(text, "Hello");
}
第二个警告是由于您将text
投射到GtkWidget *
,然后将其传递给期望gtk_entry_set_text()
的{{1}}。正确的语法应该是GtkEntry *
,但是你不需要再这样做,因为你在我上面编写的代码中已经有一个GTK_ENTRY(text)
指针。