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 :

Récuperer le contenu de deux pEntry


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut Récuperer le contenu de deux pEntry
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    struct _MainWindow
    {
        GtkWidget *pWindow;
        GtkWidget *pVBox;
        GtkWidget *pEntryNom;
        GtkWidget *pEntryPrenom;
        GtkWidget *pButton;
        GtkWidget *pLabel;
    };
     
    typedef struct _MainWindow MainWindow;
     
    void OnUpdate(GtkWidget *pEntryNom, GtkWidget *pEntryPrenom, gpointer data);
     
    int main(int argc, char **argv)
    {
        MainWindow *pApp;
     
        gtk_init(&argc, &argv);
     
        pApp = g_malloc(sizeof(MainWindow));
     
        pApp->pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pApp->pWindow), "Le widget GtkEntry");
        gtk_window_set_default_size(GTK_WINDOW(pApp->pWindow), 320, 200);
        g_signal_connect(G_OBJECT(pApp->pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        pApp->pVBox = gtk_vbox_new(TRUE, 0);
        gtk_container_add(GTK_CONTAINER(pApp->pWindow), pApp->pVBox);
     
        /* Creation du GtkEntry */
        pApp->pEntryNom = gtk_entry_new();
        /* Insertion du GtkEntry dans la GtkVBox */
        gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntryNom, TRUE, FALSE, 0);
        /* Creation du GtkEntry */
        pApp->pEntryPrenom = gtk_entry_new();
        /* Insertion du GtkEntry dans la GtkVBox */
        gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntryPrenom, TRUE, FALSE, 0);
     
        pApp->pButton = gtk_button_new_with_label("Copier");
        gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pButton, TRUE, FALSE, 0);
     
        pApp->pLabel = gtk_label_new(NULL);
        gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pLabel, TRUE, FALSE, 0);
     
        /* Connexion du signal "activate" du GtkEntry */
        g_signal_connect(G_OBJECT(pApp->pEntryNom), "activate", G_CALLBACK(OnUpdate), (gpointer) pApp);
     
        /* Connexion du signal "activate" du GtkEntry */
        g_signal_connect(G_OBJECT(pApp->pEntryPrenom), "activate", G_CALLBACK(OnUpdate), (gpointer) pApp);
     
        /* Connexion du signal "clicked" du GtkButton */
        /* La donnee supplementaire est la GtkVBox pVBox */
        g_signal_connect(G_OBJECT(pApp->pButton), "clicked", G_CALLBACK(OnUpdate), (gpointer*) pApp);
     
        gtk_widget_show_all(pApp->pWindow);
     
        gtk_main();
     
        g_free(pApp);
     
        return EXIT_SUCCESS;
    }
     
    /* Fonction callback execute lors du signal "activate" */
    void OnUpdate(GtkWidget *pEntryNom, GtkWidget *pEntryPrenom, gpointer data)
    {
        const gchar *nom,*prenom;
        MainWindow *pApp;
     
        /* Recuperation de data */
        pApp = (MainWindow*) data;
     
        /* Recuperation du texte contenu dans le GtkEntry */
        nom = gtk_entry_get_text(GTK_ENTRY(pApp->pEntryNom));
        prenom = gtk_entry_get_text(GTK_ENTRY(pApp->pEntryPrenom));
        /* Modification du texte contenu dans le GtkLabel */
        //gtk_label_set_text(GTK_LABEL(pApp->pLabel),nom);
        printf("\nVous etes %s %s\n",nom,prenom);
    }
    Salut, mon programme affiche deux zones de texte et permet normalement de les afficher dans un pLabel. Compilation sans erreur mais lors de l'exécution j'obitent rien!
    Est ce que c'est à cause des deux signaux vers une seule fonction callback ?!

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut
    Salut,

    a la place de

    printf("\nVous etes %s %s\n",nom,prenom);

    essayez

    g_print ("\nVous etes %s %s\n",nom,prenom);


    Et une question .... comment pouvez vous transmettrer 3 pointers a OnUpdate ?!
    Changez la a

    void OnUpdate(GtkWidget *pEntryNom, gpointer data);


    Fredy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Décalage contenu de deux cellules
    Par Sayrus dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/10/2006, 12h31
  2. Récuperation du contenu binaire d'une variable
    Par laetous dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 23/07/2006, 18h09
  3. Comparer le contenu de deux requêtes
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 11h43
  4. comparer le contenu de deux tables?
    Par sessime dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/03/2006, 14h05
  5. Comparer le contenu de deux vecteurs
    Par misou83 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 20/07/2005, 17h17

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