我非常不知道 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");
}
我遇到了这些令人震惊的错误,但我不知道如何解决:
implicit declaration of function 'lookup_widget' [which also explains the undefined reference to 'lookup_widget']
passing argument 1 of gtk_entry_set_text' from incompatible pointer type
最佳答案
lookup_widget()
仅在 Glade 2 的生成代码中使用。 Glade 2 用于生成文件 support.c
,其中包含该函数和其他函数。这个已经不再使用了。现在,当您连接clicked
时,您可以将条目小部件指定为用户数据参数。 Glade 3 中的信号,因此您可以执行以下操作:
void on_CLICK_clicked (GtkButton *button, GtkEntry *text)
{
gtk_entry_set_text(text, "Hello");
}
第二个警告是由您转换 text
引起的到 GtkWidget *
然后将其传递给gtk_entry_set_text()
预计 GtkEntry *
。正确的语法是 GTK_ENTRY(text)
,但您不再需要这样做,因为您已经有了 GtkEntry *
我上面写的代码中的指针。
关于c - Glade3 C 编程按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115392/