0
我有以下代碼:GtkWidget的回調(切換按鈕)不通過數據
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。
非常感謝!我認爲DT存在,直到對話框打開。也許我會讀一些關於GTK的內容;)謝謝! – user2194898 2013-03-21 14:38:25
很酷。如果它適合你,請點擊向上箭頭並接受答案 – iain 2013-03-21 15:02:16