Salut,
J'apprend GTK+ en faisant une "version graphique" du jeu de la vie et je souhaite afficher une grille à peu près comme ça :



Voici le code qui dessine la fenêtre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
void draw_window(struct _MainWindow *pApp)
{
    /* Creation de la fenêtre */
    pApp->pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(pApp->pWindow), "Jeu de la vie");
    gtk_window_set_default_size(GTK_WINDOW(pApp->pWindow), 350, 350);
    g_signal_connect(G_OBJECT(pApp->pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
    /* Creation de la boite verticale gerant la fenetre */
    pApp->pVBox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(pApp->pWindow), pApp->pVBox);
 
    /* Creation de la boite horizontale acceuillant les boutons */
    pApp->pBtnHBox = gtk_hbox_new(TRUE, 0);
    gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pBtnHBox, FALSE, FALSE, 0);
 
    /* Mise en place des boutons */
    pApp->pStartBtn = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
    gtk_box_pack_start(GTK_BOX(pApp->pBtnHBox), pApp->pStartBtn, FALSE, FALSE, 0);
    /* g_signal_connect(G_OBJECT(pApp->pStartBtn), "clicked", G_CALLBACK(start_clicked), NULL); */
    pApp->pPrevBtn = gtk_button_new_from_stock(GTK_STOCK_GO_BACK);
    gtk_box_pack_start(GTK_BOX(pApp->pBtnHBox), pApp->pPrevBtn, FALSE, FALSE, 0);
    /* g_signal_connect(G_OBJECT(pApp->pPrevBtn), "clicked", G_CALLBACK(prev_clicked), NULL); */
    pApp->pNextBtn = gtk_button_new_from_stock(GTK_STOCK_GO_FORWARD);
    gtk_box_pack_start(GTK_BOX(pApp->pBtnHBox), pApp->pNextBtn, FALSE, FALSE, 0);
    /* g_signal_connect(G_OBJECT(pApp->pNextBtn), "clicked", G_CALLBACK(next_clicked), NULL); */
 
    pApp->pTable = gtk_table_new(T, T, TRUE);
    gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pTable, TRUE, TRUE, 0);
}
[EDIT] Lorsque l'on code une application GTK+ vaut-il mieux utiliser les types et fonctions de gtk+ telque gint, gchar, g_malloc pour tout le code ou les utiliser que pour les fonctions en rapport à GTK+ ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
struct _MainWindow
{
    GtkWidget* pWindow;
    GtkWidget* pVBox;
    GtkWidget* pBtnHBox;
    GtkWidget* pTable;
    GtkWidget* pStartBtn;
    GtkWidget* pPrevBtn;
    GtkWidget* pNextBtn;
 
    GtkWidget* pCellLabel[T*T];
};
 
struct _LifeGame
{
    grid map;
    int count[T][T];
 
    struct _LifeGame *pprev;
    struct _LifeGame *pnext;
};
 
...
 
pApp = (struct _MainWindow *) g_malloc(sizeof(struct _MainWindow));
draw_window(pApp);
 
pStart = (struct _LifeGame *) malloc(sizeof(struct _LifeGame));