[英]Passing variables through callback function in GTK C
我正在嘗試從我的回調函數在控制台上打印變量i
的值,但不是打印 23,而是繼續打印一些地址 11652528 等...
我在網上搜索了很多,根據舊的 GTK 教程(實際的G_CALLBACK
宏是GTK_SIGNAL_FUNC
)這應該可以工作。
有誰知道錯誤在哪里?
#include <stdlib.h>
#include <gtk/gtk.h>
#include <string.h>
void f_window(GtkWidget* widget, gpointer data)
{
g_print("%d\n",GPOINTER_TO_INT(data));
}
int main(int argc, char **argv)
{
gint i=23;
GtkWidget * MainWindow = NULL;
gtk_init(&argc, &argv);
MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(MainWindow),"delete-event",G_CALLBACK(f_window),GINT_TO_POINTER(i));
gtk_widget_show_all(MainWindow);
gtk_main();
gtk_exit(EXIT_SUCCESS);
return EXIT_SUCCESS;
}
先感謝您!!!
"delete-event"
信號回調需要三個arguments。
f_window 的f_window
簽名應該是GtkWidget* widget, GdkEvent *event, gpointer data
。
您實際上是在代碼中打印event
的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.