我有以下代码:
int DT=45;
g_print("--Set: %d\n",DT);
g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(cave_dive_toggle_cb), (gpointer) &DT);
和回调函数:
void cave_dive_toggle_cb(GtkWidget *widget, gpointer data)
{
int *ID=(int *)data;
int DT= *ID;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
g_print("clicked %d\n",DT);
else
g_print("unclicked %d\n",DT);
}
打开对话框并单击按钮时,我总是看到:
--Set: 45
clicked 0
unclicked 0
clicked 0
unclicked 0
clicked 0
unclicked 0
难道我做错了什么?据我了解 Gtk 文档,我不是。我也尝试了交换版本并使用第一个参数以确保我编写了正确的 CB。