IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Boutton radio et boite de dialogue


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Boutton radio et boite de dialogue
    Bonjour,

    Je viens de commencer le Gtk+.
    J'ai une fenetre qui propose 4 boutton radio: Nom, Jour, Mois, Année avec un bouton valider. Le boutton est lié à un callback qui ouvre une boite de dialogue pour demander par exemple le nom, ou alors les dates.

    J'ai deux problème:

    D'abord, je veux savoir quel bouton radio est choisi. J'ai fait le toggle button get active et il trouve bien le sLabel qui correspond, mais quand je teste if(strcmp(sLabel,"Nom")==1), je ne rentre pas dans la boucle. J'ai même essayé de mettre un puts("a") juste pour voir si je rentre dedans et j'ai une erreur de segmentation juste quand je la rajoute.

    Mon autre problème: une fois que j'ai trouvé les dates (j'ai testé sans le if et ca fonctionne), je souhaite afficher sur la fenetre de base les résultats. Quand j'affiche seulement ce qui a été tapé, ca fonctionne, mais quand j'essaie de concaténér avec une autre chaine, j'ai une erreur de segmentation. Je ne comprends pas pourquoi.


    Je vous mets les bouts de code correspondants:
    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
    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
    void cb_valider(GtkWidget *pBtn, gpointer data)
    {
        GtkWidget *pInfo;
        GtkWidget *pWindow;
        GSList *pList;
        const gchar *sLabel;
        GtkWidget* pEntry;
        GtkWidget* pEntry1;
        GtkWidget* pEntry2;
        const gchar* sNom;
        const gchar* date1;
        const gchar* date2;
        GtkWidget *lab;
        GtkWidget *labb;
        mwind *wind;
        wind=g_malloc(sizeof(mwind));
     
        wind=(mwind*) data;
        /* Recuperation de la liste des boutons */
        pList = gtk_radio_button_get_group(GTK_RADIO_BUTTON(wind->pRadio));
     
     
        while(pList) /* Parcours de la liste */
        {
            /* Le bouton est il selectionne */
            if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pList->data)))
            {
                sLabel = gtk_button_get_label(GTK_BUTTON(pList->data));
                /* On sort de la boucle */
                pList = NULL;
            }
            else
            { pList = g_slist_next(pList);}
        }
       //printf("%s",strcmp(sLabel,"Nom"));
     
       //if(strcmp(sLabel,"Nom")==1){
        pInfo =  gtk_dialog_new_with_buttons("Saisie du nom",
            GTK_WINDOW(wind->pWind),
            GTK_DIALOG_MODAL,
            GTK_STOCK_OK,GTK_RESPONSE_OK,
            GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,
            NULL);
     
       lab=gtk_label_new( "M/Mme:");
       gtk_label_set_justify(lab,GTK_JUSTIFY_LEFT);
        gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pInfo)->vbox),lab, TRUE, FALSE, 0);
     
        pEntry = gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pInfo)->vbox), pEntry, TRUE, FALSE, 0);
     
     
        gtk_widget_show_all(GTK_DIALOG(pInfo)->vbox);
     
        switch (gtk_dialog_run(GTK_DIALOG(pInfo)))
        {
            case GTK_RESPONSE_OK:
                sNom = gtk_entry_get_text(GTK_ENTRY(pEntry));
                gtk_label_set_text(GTK_LABEL(wind->pLabel1),sNom);
                break;
     
            case GTK_RESPONSE_CANCEL:
            case GTK_RESPONSE_NONE:
            default:
                gtk_label_set_text(GTK_LABEL(wind->pLabel1), "Vous n'avez rien saisi !");
                break;
        }
        gtk_widget_destroy(pInfo);
    //	}
     
     
    }
    Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2009
    Messages : 27

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Merci,

    Je viens de le faire, ca fonctionne bien.
    Par contre, j'ai toujours le problème pour strcat.J'ai essayé de voir g_strcat mais cette fonction n'existe pas comme fonction. Je pensais qu'on pouvait utiliser les fonctions de C directement.

  4. #4
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Ahh j'ai trouvé. Avec g_stroncat ca fonctionne.

Discussions similaires

  1. Boite de dialogue avec choix type radio ou select
    Par maxtrident dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/08/2014, 18h28
  2. Boite de dialogue et le boutton annuler
    Par sab_etudianteBTS dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 10/06/2007, 17h06
  3. Buotons radios avec validation par boite de dialogue
    Par alexbubs dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/10/2005, 18h21
  4. Réponses: 5
    Dernier message: 04/04/2003, 15h02
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo