Voici un bout de code:

stephan -  
 stephan -
bonjour à tous,

je programme un peu en c sur gtk pour m'amuser un peu mais hellas je rencontre quelques problèmes.
je programme un genre de petite calculatrice, l'utilisateur tape un nombre dans un gtkentry, ensuite il choisi entre une soustraction, addition, division ou multiplication dans un combo box, il tape le deuxième nombre dans un gtkentry et enfin il appuie sur un bouton pour valider et ensuite le programme est sencer afficher la reponse.
Seulement voilà, lorsque l'on rempli bien toute les cases et qu'on appuit sur le bouton je reçoit un message disant que le programme.exe a césser de fonctionner.
Y a-t-il des problemes fréquents à ce sujet là?
Est-ce lier à la fonction calback?
j'ai besoin de votre aide.

voici un bout de code:
ça c'est la fonction du bouton

void calcul(GtkWidget *pButton, gpointer data)
{
    gint resultat, t1, t2;
    gchar charresult[30];
    const gchar *texteliste;
    GtkWidget *saisie;
    GtkWidget *saisie2;
    GtkWidget *saisie3;
    GtkWidget *liste;
    GList *pList;


    pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));


    pList = g_list_next(pList);
    saisie = GTK_WIDGET(pList->data);
    pList = g_list_next(pList);
    liste = GTK_WIDGET(pList->data);
    pList = g_list_next(pList);
    saisie2 = GTK_WIDGET(pList->data);
    pList = g_list_next(pList);
    pList = g_list_next(pList);
    saisie3 = GTK_WIDGET(pList->data);



    texteliste = gtk_combo_box_get_active_text(GTK_COMBO_BOX(liste));

    if (strcmp(texteliste, "+") == 0)
        {
            t1 = atoi(gtk_entry_get_text(GTK_ENTRY(saisie)));
            t2 = atoi(gtk_entry_get_text(GTK_ENTRY(saisie2)));
            resultat = t1 + t2;
            sprintf (charresult,"%d",resultat);
            gtk_entry_set_text(GTK_ENTRY(saisie3), texteliste);
        }

g_list_free(pList);
}
et ca le debut

pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Le mathematitien");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 200, 360);
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
        pVBox = gtk_vbox_new(FALSE, 0);
        gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
        pHBox = gtk_hbox_new(FALSE, 0);
        gtk_box_pack_start(GTK_BOX(pVBox), pHBox, FALSE, FALSE, 0);

        pEntry = gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(pHBox), pEntry, FALSE, FALSE, 0);

        pBande = gtk_combo_box_new_text();
        gtk_combo_box_append_text(GTK_COMBO_BOX(pBande), "+");
        gtk_combo_box_append_text(GTK_COMBO_BOX(pBande), "-");
        gtk_combo_box_append_text(GTK_COMBO_BOX(pBande), "x");
        gtk_combo_box_append_text(GTK_COMBO_BOX(pBande), ":");
        gtk_box_pack_start(GTK_BOX(pHBox), pBande, FALSE, FALSE, 0);

        entree = gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(pHBox), entree, FALSE, FALSE, 0);

        pButton = gtk_button_new_with_label("resoudre");
        gtk_box_pack_start(GTK_BOX(pVBox), pButton, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(pButton), "clicked", G_CALLBACK(calcul), (GtkWidget*) pVBox);

        txt3 = gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(pVBox), txt3, FALSE, FALSE, 0);

        gtk_widget_show_all(pWindow);
        gtk_main();
    }

et je précise que pour le moment il ne fait que les additions

1 réponse

stephan
 
personne ne peut m'aider?
0