1
我有一些按钮,我想跟踪按下了哪个按钮。按钮被按下后,我需要显示不同的数据的新窗口或对话框中被按下gtk处理程序有错误的数据
for(j = 0; j < 4; j++)
{
eventbox = gtk_event_box_new();
show_button[j] = gtk_button_new_with_label (label);
gtk_table_attach_defaults (GTK_TABLE (table), eventbox, left_pos, right_pos , top_pos, bot_pos);
gtk_container_add(GTK_CONTAINER(eventbox), show_button[j]);
g_signal_connect (G_OBJECT (show_button[j]), "clicked", G_CALLBACK (show), &j);
left_pos = right_pos + shift;
right_pos = left_pos + width;
gtk_widget_modify_bg(eventbox, GTK_STATE_NORMAL, &color[0]);
}
按钮的依赖和我的处理程序是
void show(GtkWidget *window, gpointer data)
{
int i = *(int*)data;
printf("%d\n", i);
GtkWidget *marking_table;
window[i] = gtk_window_new (GTK_WINDOW_POPUP);
gtk_widget_set_size_request(window[i], 1000, 700);
gtk_window_set_policy (GTK_WINDOW (window[i]), FALSE, FALSE, TRUE);
gtk_window_set_position(GTK_WINDOW(window[i]), 1);
gtk_widget_set_app_paintable(window[i], TRUE);
g_signal_connect (G_OBJECT (window[i]), "delete_event", G_CALLBACK (delete_event), NULL);
marking_table = gtk_table_new (1000, 700, TRUE);
gtk_container_add (GTK_CONTAINER (window[i]), marking_table);
}
我经常因为段错误的“i”例如= 20350345。可能有另一种方法来了解按钮被按下了哪个按钮?
欢迎任何帮助!
谢谢,它帮助了我。 – iiukyr4uk