在GTK C中通过回调函数传递变量
我正试图从回调函数在控制台上打印变量在GTK C中通过回调函数传递变量,c,function,callback,gtk,C,Function,Callback,Gtk,我正试图从回调函数在控制台上打印变量I的值 functon,但它不打印23,而是继续打印一些地址1165228等 我在网上搜索了很多,根据一个旧的GTK教程(实际的G_回调宏是GTK_信号函数),这应该可以工作 有人知道错误在哪里吗 #include <stdlib.h> #include <gtk/gtk.h> #include <string.h> void f_window(GtkWidget* widget, gpointer data) {
I
的值
functon,但它不打印23,而是继续打印一些地址1165228等
我在网上搜索了很多,根据一个旧的GTK教程(实际的G_回调
宏是GTK_信号函数
),这应该可以工作
有人知道错误在哪里吗
#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;
}
#包括
#包括
#包括
无效f_窗口(GtkWidget*小部件,gpointer数据)
{
g_print(“%d\n”,GPOINTER_TO_INT(数据));
}
int main(int argc,字符**argv)
{
gint i=23;
GtkWidget*MainWindow=NULL;
gtk_init(&argc,&argv);
MainWindow=gtk_window_new(gtk_window_TOPLEVEL);
g_信号连接(g_对象(主窗口)、“删除事件”、g_回调(f_窗口)、GINT_到_指针(i));
gtk_小部件_显示_全部(主窗口);
gtk_main();
gtk_退出(退出成功);
返回退出成功;
}
提前谢谢你 信号回调采用参数
f_窗口
的函数签名应该是GtkWidget*小部件、GdkEvent*事件、gpointer数据
实际上,您正在代码中打印event
的值。“delete event”
信号回调包含参数
f_窗口
的函数签名应该是GtkWidget*小部件、GdkEvent*事件、gpointer数据
你实际上是在代码中打印<代码>事件<代码>。如果我的答案有帮助,考虑点击投票得分旁边的大蜱来接受它。祝你好运,并勇于使用C和GTK。如果我的答案有帮助,考虑点击大蜱旁边的投票分数接受它。祝你好运,使用C和GTK真棒。