Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 744 fois - Téléchargée 31 fois
#include <gtk/gtk.h> #include <stdlib.h> #include <string.h> // ligne à utiliser pour la compilation sous Linux : // gcc nombre_a_calc.c -o nombre_a_calc.exe `pkg-config --cflags --libs gtk+-2.0` GtkWidget *fenetre; GtkWidget *vbox; GtkWidget *lab_calcul_a_faire; GtkWidget *entry_resultat; GtkWidget *bout_valider; GtkWidget *lab_infos; gint a, b, c; void preparer_un_nouveau_calcul(void); void verification(GtkWidget *widget, gpointer data); int main(int argc, char **argv) { gtk_init(&argc, &argv); fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (fenetre, 300, 200); gtk_window_set_title (GTK_WINDOW (fenetre), "Trouver la valeur"); g_signal_connect(G_OBJECT(fenetre),"destroy",G_CALLBACK(gtk_main_quit), NULL); vbox = gtk_vbox_new (TRUE, 10); gtk_container_add (GTK_CONTAINER (fenetre), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 20); lab_calcul_a_faire = gtk_label_new ( "un calcul" ); gtk_box_pack_start (GTK_BOX (vbox), lab_calcul_a_faire, FALSE, FALSE, 0); preparer_un_nouveau_calcul(); entry_resultat = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry_resultat, FALSE, FALSE, 0); bout_valider = gtk_button_new_with_label("Valider votre réponse"); gtk_box_pack_start (GTK_BOX (vbox), bout_valider, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(bout_valider),"clicked",G_CALLBACK(verification), NULL); lab_infos = gtk_label_new("Tentez une réponse !"); gtk_box_pack_start (GTK_BOX (vbox), lab_infos, FALSE, FALSE, 0); gtk_widget_show_all(fenetre); gtk_main(); return EXIT_SUCCESS; } void preparer_un_nouveau_calcul(void) { srand(time(NULL)); a = rand() % 5; b = rand() % 5; c = a*b; gtk_label_set_text(GTK_LABEL(lab_calcul_a_faire), g_strdup_printf ("Calculez %d x %d =", a, b) ); } void verification(GtkWidget *widget, gpointer data) { const gchar *result_recupere; gint resultat; result_recupere = gtk_entry_get_text(GTK_ENTRY(entry_resultat)); resultat=atoi(result_recupere); if(resultat==c) { gtk_label_set_text(GTK_LABEL(lab_infos),"Bonne réponse ! Recommencez..."); } else { gtk_label_set_text(GTK_LABEL(lab_infos),"Mauvaise réponse ! Ré-essayez..."); } preparer_un_nouveau_calcul(); gtk_entry_set_text(GTK_ENTRY(entry_resultat),""); }
3 juin 2005 à 09:50
C'est vrai mettre en global c'est pas terrible. Dans ce cas le programme n'est pas long donc ca va.
Jpeu pas tester le prog je n'ai plus GTK, je ne m'en sert plus. J'ai fait quelques programmes avec mais je préfère Qt.
Bon code lan meme et bon site internet ;) (http://www.langagec.be/)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.