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 :

GTK, Widget et noms


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut GTK, Widget et noms
    Bonjour à tous,

    Je viens de commencer à apprendre GTK+, c'est ma première bibliothèque graphique.

    J'ai vu qu'il était possible de donner à plusieurs Widget le même nom (la notion d'objet a-t- elle quelque chose à voir avec ça) , je comprend pas très bien. ?

    Voici le code qui me pose problème :
    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
    /* Creation du bouton "Ouvrir" */
     
      {
     
        GtkWidget *p_button = NULL;
     
     
     
        p_button = gtk_button_new_from_stock (GTK_STOCK_OPEN);
     
        g_signal_connect (G_OBJECT (p_button), "clicked", G_CALLBACK (cb_open), p_text_view);
     
        gtk_box_pack_start (GTK_BOX (p_button_box), p_button, FALSE, FALSE, 0);
     
      }
     
     
     
      /* Creation du bouton "Quitter" */
     
      {
     
        GtkWidget *p_button = NULL;
     
     
     
        p_button = gtk_button_new_from_stock (GTK_STOCK_QUIT);
     
        g_signal_connect (G_OBJECT (p_button), "clicked", G_CALLBACK (cb_quit), NULL);
     
        gtk_box_pack_start (GTK_BOX (p_button_box), p_button, FALSE, FALSE, 0);
     
      }
    On a déclarer deux fois p_button, non ? Comment est ce possible ? Pourquoi mon compilateur ne m'a pas indiqué une erreur de redéfinition ?

    Merci de m'éclairer un peu.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    La déclaration de p_button, c'est quand tu lui donnes son type, ie la première ligne. Ensuite, il n'y a plus que des utilisations de p_button, par exemple la deuxième ligne utilise le p_button déclaré précédemment et lui affecte une valeur.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Merci de ta réponse, mais c'est pas ce que je voulais dire.

    Ce que je ne comprend pas c'est que l'on crée les boutons "Ouvir" et "Quitter" avec deux Widgets différents, qui portent le même nom et qui sont pourtant définis chacun ( deux fois GtkWidget *p_button = NULL ). Comment est ce possible ? A moins que chaque Widget p_button soit détruit après la paire de parenthèses.

    Je sais pas si tu vois ce que je veux dire...

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Citation Envoyé par Captare Voir le message
    Merci de ta réponse, mais c'est pas ce que je voulais dire.
    Ah oui excuse moi, j'avias pas vu qu'il y avait 2 blocs de code dans ton post :-/ Je vais aller m'acheter des yeux!

  5. #5
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par Captare Voir le message
    Bonjour à tous,

    Je viens de commencer à apprendre GTK+, c'est ma première bibliothèque graphique.

    J'ai vu qu'il était possible de donner à plusieurs Widget le même nom (la notion d'objet a-t- elle quelque chose à voir avec ça) , je comprend pas très bien. ?

    Voici le code qui me pose problème :
    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
    /* Creation du bouton "Ouvrir" */
     
      {
     
        GtkWidget *p_button = NULL;
     
     
     
        p_button = gtk_button_new_from_stock (GTK_STOCK_OPEN);
     
        g_signal_connect (G_OBJECT (p_button), "clicked", G_CALLBACK (cb_open), p_text_view);
     
        gtk_box_pack_start (GTK_BOX (p_button_box), p_button, FALSE, FALSE, 0);
     
      }
     
     
     
      /* Creation du bouton "Quitter" */
     
      {
     
        GtkWidget *p_button = NULL;
     
     
     
        p_button = gtk_button_new_from_stock (GTK_STOCK_QUIT);
     
        g_signal_connect (G_OBJECT (p_button), "clicked", G_CALLBACK (cb_quit), NULL);
     
        gtk_box_pack_start (GTK_BOX (p_button_box), p_button, FALSE, FALSE, 0);
     
      }
    On a déclarer deux fois p_button, non ? Comment est ce possible ? Pourquoi mon compilateur ne m'a pas indiqué une erreur de redéfinition ?

    Merci de m'éclairer un peu.


    SAlut! ton inquiétude n'en est pas en fait une. il faut juste comprendre la notion de portée des variables. Remarque bien dans ton code que les deux variables qui ont le même nom sont déclarés dans des accolades différents. c'est normal que le compilateur ne te dit rien puisqu'il ne sont pas déclarés au même endroit (même si c'est dans le même code). celà n'a rien n'a avoir avec gtk. c'est juste la notion de portée des variables qu'il faut revoir dans ton cours ;-)

    Bonne suite à toi ;-)

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Tu as raison, j'avais oublié cette notion.

    Je me demande pourquoi ne pas nommer les boutons différemment puisque leurs usages n'est pas le même.

    Merci pour tout

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

Discussions similaires

  1. un agenda en glade gtk widget ?
    Par clavier12AZQSWX dans le forum Linux
    Réponses: 0
    Dernier message: 10/07/2009, 12h01
  2. installation de gtk : pb de nom de version
    Par awalter1 dans le forum GTK+
    Réponses: 5
    Dernier message: 05/05/2008, 09h54
  3. Réponses: 2
    Dernier message: 29/04/2008, 14h29
  4. widget pour feuille de classeur en GTK+
    Par doderic dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 11/07/2006, 21h28
  5. Donner une taille fixe à un widget GTK
    Par gwenhael dans le forum GTK+
    Réponses: 3
    Dernier message: 26/06/2006, 14h59

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