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 :

Afficher des valeurs entrées dans une fenetre, dans une seconde


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Afficher des valeurs entrées dans une fenetre, dans une seconde
    Bonsoir,

    Je reviens vers vous, car après maintes tentatives et recherches je finis par penser que je n'ai juste pas compris comment cela marchait.
    Voici ma problématique :

    J'ai une interface gtkmm dans laquelle je rentre des données (on ne prendra l'exemple que d'une par facilité), un nom par exemple.
    j'entre mon nom dans la case dédiée, je clique sur "enregistrer", je "mets à jour" mon information avec mon set et une seconde fenêtre s'affiche et est supposée retourner mon nom.
    J'ai donc écrit une fonction string Personnage::get_name(){return Name;}.
    Dans un premier temps je me demande si il faut que mette le nom dans un label pour l'afficher...?

    Et parallèlement comment faire..
    Voici mes bouts de codes, qui donc fonctionnent pas :

    creation.h
    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
     
    class Personnage
    {
        protected :
            string Name;                            /// Nom du personnage
     
        public :
            Personnage();
            void setName(string);                        /// Recupere le choix du nom de personnage
            string getName();                        /// Renvoie le choix du nom de personnage
     
    };
     
     
    class affichage : public Gtk::Window
    {
    public:
      affichage();
      virtual ~affichage();
     
    protected:
         Personnage p;
        //mes widgets 
    };
     
    class creation : public Gtk::Window
    {
    public:
      creation(Personnage &p);
      virtual ~creation();
        void on_button_clicked(Personnage &p);
     
    protected:
    //mes widgets
     
        affichage affichage; // pour creer la fenetre fille
    };

    et affichage.cpp
    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
    affichage::affichage()
    :
    FinalBox(Gtk::ORIENTATION_VERTICAL),
    AffichageBox(Gtk::ORIENTATION_HORIZONTAL),
    FinalFrame("Check out your character!"),
    CloseFrame(),
    p() // j'ai testé cela, ça compile mais ne retourne pas mon nom
    {
    //box et frames
    
        AffichageBox.pack_start(FinalFrame, Gtk::PACK_EXPAND_WIDGET, 10);
        FinalGrid.set_border_width(10);
        FinalFrame.add(FinalGrid);
        
        //les labels
        name_label.set_label("Name : "); //label du choix du  nom
        nom.set_label(p.getName()); // mon soucis se situe ici
        
        //on définit les positions dans la FinalGrid
        FinalGrid.attach(name_label, 0,0,1,1);
        FinalGrid.attach(nom, 1,0,1,1);

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Hello,

    bon, je t'avoue que c'est difficile de savoir ce que fait ton programme...
    Je crois comprendre ce que tu essaies de faire, mais si tu veux des réponses précises, tu dois être précise aussi. En l'occurence, le code n'est pas compilable en l'état, il y a plein de symboles inconnus (j'imagine que tu as dérivé des widgets)... Tu dis que ton problème se situe sur nom.set_label, mais "nom" n'est défini nulle part... Si tu veux des réponses précises, essaie de faire un code exemple minimal compilable qui expose le problème. Une fois que tu as retiré le "gras", le code qui ne sert à rien, alors il est plus facile de détecter l'origine du problème.

    Je connais plus GTK+ (en C) que GTKmm (en C++), mais ce que je remarque:
    - je te vois ajouter tes widgets dans ce qui semble être un GtkGrid
    - je ne vois pas d'appel à GtkWidget::show_all sur le widget parent de plus haut niveau, donc je ne sais pas si "name_label" et "nom" sont affichés
    - tu n'as pas de valeur par défaut pour le nom de ton personnage, et on ne voit pas le code qui change le nom du personnage... Tu affiches peut être juste un nom vide.
    - pense "programmation orientée objet": "creation" c'est plus un nom d'action qu'un nom d'object. Pourquoi la creation contient un personnage ? Les deux objets n'ont normalement pas le même cycle de vie.

    Si tu veux plus de détails, un exemple compilable est la bienvenue
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2018
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,

    Je comprends tout à fait votre message, et merci d’avoir pris le temps de me répondre!
    En effet j’ai seulement mis des bouts de mon code pour donner une idée d’à quoi cela ressemblait.
    J’ai réussi à régler mon problème ce matin, mon code fonctionnait en soit, le problème étant juste que je voulais simplement «*transférer*» des valeurs entrées dans une première fenêtre dans une deuxième et les afficher.
    J’avais seulement eu un problème de compréhension de la logique de communication entre mes différents fichiers...

    Merci encore d’avoir répondu!

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2015, 20h16
  2. Réponses: 8
    Dernier message: 26/08/2013, 18h36
  3. [XL-2010] Afficher une image contenant des valeurs changeantes dans une autre cellule
    Par TeethBrush3r dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/08/2013, 17h36
  4. Réponses: 0
    Dernier message: 24/05/2011, 10h03
  5. afficher des etats ireports dans une appli jsf
    Par ouedmouss dans le forum Documents
    Réponses: 1
    Dernier message: 09/02/2007, 07h05

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