2
這裏對GTK +回調是我的代碼:傳遞參數/參數信號在C
#include <gtk/gtk.h>
G_MODULE_EXPORT void waka(GtkWidget *button, GtkWidget* entry1)
{
printf("%s",gtk_entry_get_text(GTK_ENTRY(entry1)));
}
int main(int argc, char * argv[])
{
GtkWidget *window, *button, *entry;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
button = gtk_button_new_with_label("hha");
g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(waka),entry);
entry = gtk_entry_new();
GtkWidget *vbox;
vbox = gtk_vbox_new(FALSE,2);
gtk_box_pack_start_defaults(GTK_BOX(vbox),button);
gtk_box_pack_start_defaults(GTK_BOX(vbox),entry);
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
當我啓動它,並儘量填寫在輸入框中一些字符串,然後按一下按鈕,它說'分段錯誤'。到底是怎麼回事?
此外,回調僅適用於一個用戶數據參數。如果我想要兩個或更多參數,必須在回調函數中執行什麼以及在致電g_signal_connect()
?
THX的傢伙,反正如何通過兩個部件回調,做我需要usingg結構?或者我需要全局聲明這個小部件(例如static var/out of function var)? – capede 2011-02-01 09:40:07