2011-02-25 50 views
0

我很不了解GTK + Glade3编程的语法。 但现在我想尝试,使一个简单的程序,更改文本,当我点击一个按钮Glade3 C编程按钮

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从兼容的指针类型

回答

2

lookup_widget()仅用于Glade 2生成的代码。 Glade 2用于生成包含该功能和其他文件的文件support.c。这不再使用。现在,您可以在您的格莱德3连接clicked信号指定入口小部件的用户数据参数,这样你就可以做到以下几点:

void on_CLICK_clicked (GtkButton *button, GtkEntry *text) 
{ 
    gtk_entry_set_text(text, "Hello"); 
} 

第二个警告是由您铸造textGtkWidget *,然后引起传递给gtk_entry_set_text(),期望GtkEntry *。正确的语法应该是GTK_ENTRY(text),但是你不需要这样做,因为你已经在上面写的代码中有一个GtkEntry *指针。

+0

谢谢!你还没有意识到我可以做到这一点。 – Ree 2011-02-25 11:57:25