Перво-наперво, надеюсь, у тебя все отлично.Сейчас я делаю игру с GTK на C, я пытаюсь изменить размер Box, где находится доска, и я не уверен, что нужно изменить размер окна, в котором он находится, или таблицу кнопок.сам по себе.
Я хочу изменить его размер, чтобы он был удобным, имейте в виду, что я новичок с GTK.
#include<gtk/gtk.h>
#include<stdio.h>
#include<stdlib.h>
void boton_click (GtkWidget * widget, gpointer info);
void salida (Gtkdget * widget, gpointer info);
gboolean cierra_ventana (GtkWidget * widget, GdkEvent * event, gpointer info);
int
main (int argc, char *argv[])
{
GtkWidget *ventana, *cajavertjugador1, *namejugador1, *imageplayer1,
*framejugador1, *labeljugador1, *cajavertjugador2, *namejugador2,
*imageplayer2, *framejugador2, *labeljugador2, *cajaH, *cajaboton,
*separador, *separadorvjug1, *separadorvjug2, *cajatablero, *boton,
*botoncancel, *tabla, *tablero[20][20];
int i, j;
gchar *arch1 = "troll.jpg";
gchar *arch2 = "challenge.jpg";
//***********************************1.-Initialize Enviroment
gtk_init (&argc, &argv);
//***************************************2.-Create Widgets and attributes
imageplayer1 = gtk_image_new_from_file (arch1);
imageplayer2 = gtk_image_new_from_file (arch2);
tabla = gtk_table_new (20, 20, TRUE);
ventana = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (ventana), "Pente");
cajaH = gtk_hbox_new (FALSE, 25);
cajavertjugador1 = gtk_vbox_new (FALSE, 0);
cajatablero = gtk_hbox_new (TRUE, 500);
cajavertjugador2 = gtk_vbox_new (TRUE, 5);
cajaboton = gtk_hbox_new (TRUE, 5);
boton = gtk_button_new_with_label ("Ok");
botoncancel = gtk_button_new_with_label ("Cancel");
separador = gtk_hseparator_new ();
separadorvjug1 = gtk_vseparator_new ();
separadorvjug2 = gtk_vseparator_new ();
framejugador1 = gtk_frame_new ("Fichas Comidas");
namejugador1 = gtk_label_new ("Variable Nombre Jugador1");
labeljugador1 = gtk_label_new ("Aqui Imagenes de Las Fichas Comidas\n");
gtk_label_set_justify (GTK_LABEL (labeljugador1), GTK_JUSTIFY_LEFT);
framejugador2 = gtk_frame_new ("Fichas Comidas");
namejugador2 = gtk_label_new ("Variable Nombre Jugador2");
labeljugador2 = gtk_label_new ("Aqui Imagenes de Las Fichas Comidas\n");
gtk_label_set_justify (GTK_LABEL (labeljugador1), GTK_JUSTIFY_LEFT);
for (i = 0; i < 20; i++)
{
for (j = 0; j < 20; j++)
{
tablero[i][j] = gtk_button_new ();
}
}
//**********************************3.Register Function Calls
g_signal_connect (G_OBJECT (ventana), "delete_event",
G_CALLBACK (cierra_ventana), NULL);
g_signal_connect (G_OBJECT (ventana), "destroy", G_CALLBACK (salida), NULL);
//***********************************4.-Hierarchy of Elements
gtk_container_add (GTK_CONTAINER (ventana), cajaH);
gtk_container_add (GTK_CONTAINER (cajaH), cajavertjugador1);
gtk_container_add (GTK_CONTAINER (cajaH), separadorvjug1);
gtk_container_add (GTK_CONTAINER (cajavertjugador1), namejugador1);
gtk_container_add (GTK_CONTAINER (cajavertjugador1), imageplayer1);
gtk_container_add (GTK_CONTAINER (framejugador1), labeljugador1);
gtk_container_add (GTK_CONTAINER (cajavertjugador1), framejugador1);
gtk_container_add (GTK_CONTAINER (cajatablero), tabla);
gtk_container_set_focus_vadjustment (GTK_CONTAINER (cajatablero),
GTK_ADJUSTMENT (50));
gtk_container_add (GTK_CONTAINER (cajaH), cajatablero);
gtk_container_add (GTK_CONTAINER (cajaH), separadorvjug2);
gtk_container_add (GTK_CONTAINER (cajavertjugador2), namejugador2);
gtk_container_add (GTK_CONTAINER (cajavertjugador2), imageplayer2);
gtk_container_add (GTK_CONTAINER (framejugador2), labeljugador2);
gtk_container_add (GTK_CONTAINER (cajavertjugador2), framejugador2);
gtk_container_add (GTK_CONTAINER (cajaH), cajavertjugador2);
for (i = 0; i < 20; i++)
{
for (j = 0; j < 20; j++)
{
gtk_table_attach_defaults (GTK_TABLE (tabla), tablero[i][j], i,
i + 1, j, j + 1);
}
}
//****************************5.Show the Widddgggeetss
gtk_widget_show_all (ventana);
//****************************6.Process Signals and Events
gtk_main ();
return 1;
}//main
gboolean
cierra_ventana (GtkWidget * widget, GdkEvent * event, gpointer info)
{
return FALSE;
}
void
salida (GtkWidget * widget, gpointer info)
{
gtk_main_quit ();
}