1) Подключаю функцыю к 9 кнопкам, где в качестве данных передаю адрес gint переменной, при каждом вызове функции значение n увеличивается от 0 до 8
for(i=0;i<9;i++){
button = gtk_button_new ();
g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (click),&n);
gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
}т.е. при нажатии на определенную кнопку должен происходить вызов одной и той же функции но с разным значением в data
static void click(GtkWidget *widget,gpointer data)
{
g_print("data: %d\n",*(gint*)data);
}
но выводится постоянно число 8
data: 8
data: 8
data: 8
data: 8
data: 8
Как тогда определить какая клавиша была нажата, для каждой кнопки заводить отдельную функцию обратного вызова?
2) Создал кнопку с изображением:
image_1 = gtk_image_new_from_file ("1.xpm");
image_2 = gtk_image_new_from_file ("2.xpm");
gtk_container_add (GTK_CONTAINER (button), image_1);
Как сменить иконку на кнопке с image_1 на image_2
так правильно?
gtk_container_remove (GTK_CONTAINER (widget), image_1);
gtk_container_add (GTK_CONTAINER (widget), image_2);
gtk_widget_show(image_2);
может есть правильный способ.
3) Как задать размер окна, и запретить изменение размера
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
ставлю размер:
gtk_window_set_default_size(GTK_WINDOW(window),400,400);
запрещаю изменение размера:
gtk_window_set_resizable(GTK_WINDOW(window),FALSE);
и после этой функции размер возвращается к исходному