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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#include <stdlib.h>
#include <stdio.h>
#include <gtk/gtk.h>
#define N 6
//Cette procédure affiche une fenêtre affichant le numéro du bouton correspondant
void fenetreReponse (int n);
int main (int argc, char **argv) {
GtkWidget *pFenetre,
*pTable,
*pBouton [N];
gchar *c;
gtk_init (&argc, &argv);
//Création et définition de la fenêtre globale
pFenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW(pFenetre), 180, 300);
gtk_window_set_position (GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
gtk_window_set_title (GTK_WINDOW(pFenetre), "Tableau de Valeurs");
//Création de la table 7 lignes et 1 colonne
pTable = gtk_table_new (6, 1, TRUE);
int i;
for (i=0; i<N; i++) {
//Création de chaque bouton
g_sprintf (c, "%d", i+1);
pBouton[i] = gtk_button_new_with_label (c);
//Insertion de chaque bouton dans la table
gtk_table_attach_defaults (GTK_TABLE(pTable), pBouton[i], 0, 1, i, i+1);
//Connexion de chaque bouton au signal "clicked"
g_signal_connect (G_OBJECT(pBouton[i]), "clicked", G_CALLBACK(fenetreReponse), &i); }
//Insertion de le table dans la fenetre
gtk_container_add (GTK_CONTAINER(pFenetre), pTable);
//Connexion de la fenêtre au signal "destroy"
g_signal_connect (G_OBJECT(pFenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
//Affichage de la fenêtre globale et tout son contenu
gtk_widget_show_all (pFenetre);
gtk_main ();
return EXIT_SUCCESS;
}
void fenetreReponse (int n) {
GtkWidget *pFenetre, *pLabel;
gchar *c;
//Création de la fenêtre d'affichage
pFenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW(pFenetre), 150, 100);
gtk_window_set_position (GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
gtk_window_set_title (GTK_WINDOW(pFenetre), g_locale_to_utf8 ("Fenêtre réponse", -1, NULL, NULL, NULL));
//Création du label et insertion dans la fenêtre
g_sprintf (c, "%ld", n);
pLabel = gtk_label_new (c);
gtk_container_add (GTK_CONTAINER(pFenetre), pLabel);
//Affichage de la fenêtre
gtk_widget_show_all (pFenetre);
} |
Partager