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+ Discussion :

[Conception] Affichage des Widgets


Sujet :

GTK+

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut [Conception] Affichage des Widgets
    Bonsoir à tous !
    Je suis confronté à un petit problème au niveau de la conception.
    J'ai un menu composé de plusieurs sous-menu,
    lors d'un clic sur un de ces sous-menu, je tout supprimer (sauf le menu evidement) pour pouvoir y mettre un contenu spécifique ensuite.

    Pour le moment je fonctionne comme ceci:
    J'ai une classe GtkWindow où j'y ai une Vertical box principal, à laquelle j'attache mon menu.
    Dans cette classe j'ai une box horizontale en variable globale à la classe.
    Et je procède ainsi: lors d'un click sur un sous menu ('activate'), j'appelle une méthode de ma classe qui, supprime (destroy) la box horizontal, puis la recrée pour enfin ajouter les widgets dont j'ai besoin...
    Mais je pense que c'est pas propre du tout du tout et je ne sais pas comment procéder autrement...
    Si vous pouvez m'aider, merci beaucoup...

    Voici l'algo de mon code:
    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
     
    class étendue de GtkWindow
    {
    	protected vbox;
    	protected hbox;
     
    	__constructeur {
    		vbox->attach(buildMenu());
    		show_all
    	}
     
    	buildMenu {
    		creation du menu;
    		sous_menu->connect_simple('afficher_form', ...);
    	}
     
    	afficher_form {
    		hbox->destroy();
    		hbox = new GtkHBox();
    	}
    }

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    La méthode à utiliser dépend de quelques paramètres :
    • Le nombre et la taille de chaque page (ta hbox)
    • La fréquence probable de changement


    La méthode de construction/destruction est à utiliser si tu as des contraintes d'espace mémoire et si l'utilisateur ne change pas souvent de page (sinon le temps de détruire et reconstruire la page, ça peux être long).

    Sinon une autre méthode est d'utiliser un GtkNotebook dont tu cache les onglets, lorsque l'utilisateur clique sur un menu, tu te contente d'afficher la page correspondante (en plus ton menu n'a besoin de connaître que le numéro de sa page).

    Après si la création du GtkNotebook est trop longue, tu peux décider de construire uniquement la première page et de faire les autres lors de la première demande (un peu comme les singletons, si tu connaît le principe ).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut
    Hey,
    Et bien merci pour cette réponse, tu as confirmer ce que je pensais.
    J'avais aussi envisagé les GtkNoteBook

    Merci beaucoup

    BloodyDark.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut
    Salut,
    ayant un problème similaire, je me permet de poster ici pour éviter un topic en doublon ..
    Je code avec le langage Perl pour info.

    Pour afficher "dynamiquement" le contenu de ma fenêtre j'ai crée un notebook gtk.
    Le souci est que je n'arrive pas à afficher une page par son numéro d'index.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            #.. Définition de $Vboiteajout..  et de $label3
            $mynotebook->insert_page($Vboiteajout,$label3,2);
            $mynotebook->set_page(2); # Devrait me mettre à la page 2 ..non ?
            $mynotebook->draw(undef); # Pour rafraichir le notebook.. a pas l'air de bien marcher.. 
            $mynotebook->show; #rajouté au cas ou mais mynotebook est déjà en show..
    .. Une idée ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut
    Bon.. je me suis répondu tout seul ( un grand classique )..

    Bizarrement j'ai du faire un "window->show_all" pour mettre à jour ma fenêtre avec le widget
    fraichement redessiné.


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

Discussions similaires

  1. changement d'ordre d'affichage des widgets
    Par maxence51 dans le forum Débuter
    Réponses: 9
    Dernier message: 08/11/2008, 11h34
  2. langue d'affichage des widgets
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 11/10/2007, 18h23
  3. [Conception] affichage des données de la base en cilquant sur un lien
    Par katie dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/09/2006, 23h41
  4. [Conception] affichage des données
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/07/2006, 15h14
  5. [Conception] affichage des données
    Par fabrice88 dans le forum Décisions SGBD
    Réponses: 0
    Dernier message: 06/07/2006, 18h46

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