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 :

Menu caché au depart


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Menu caché au depart
    je cherche a creer un menu (GtkMenuBar) qui au depart n'a qu'un seul intitulé(GtkMenu ),
    apres avoir cliquer sur un des bouton du menu( GtkMenuItem), on affiche un menu (GtkMenu )a droite du precedent,...
    les menu (GtkMenu ) sont déja defini dans le main il faut juste les affficher

    quelqu'un sait il faire ???

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Salut, bienvenue sur les forums de developpez.com


    Pour ton cas, il faut procéder en plusieures étapes soit:
    1. Récupérer la liste des menus avec la fonction gtk_container_get_children qui retourne une GList.
    2. Récupérer le pointeur vers le menu à afficher ou cacher avec la fonction g_list_nth. Cette fonction parcours en fait ta liste qui contient tous les menus et retourne le pointeur vers le noeud de données si elle le trouve, elle retourne donc un pointeur de type GList (uniquement le noeud courant en fait).
    3. Afficher le menu souhaité avec la fonction gtk_widget_show.
    4. Libérer la liste qui contient tous les menus avec la fonction g_list_free.


    Je ne pense pas qu'on puisse être plus clair que ca. Créé ce code et si tu as des problèmes post ce que tu as fait et je t'aiderais
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    je debute completement dans GTK
    alors je ne comprend pas vraiment ce que tu veux dire

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Mouais ... bon ok, voici une fonction que j'ai fait pour afficher/cacher un menu:

    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
     
    void menu_show (GtkWidget * p_item,
                    gint i_index,
                    gboolean b_visible)
    {
       GList * p_list = NULL;
     
     
       /*
        * Recupere la liste des menus depuis la barre de menus ou la liste des
        * commandes de menus d'apres le pointeur sur le sous-menu.
        */
       p_list = gtk_container_get_children (GTK_CONTAINER (p_item));
     
       if (p_list)
       {
          /*
           * Recupere un pointeur vers le menu ou la commande de menu a
           * afficher ou cacher.
           */
          GList * p_tmp = g_list_nth (p_list, i_index);
     
          if (p_tmp)
          {
             if (b_visible)
             {
                gtk_widget_show (GTK_WIDGET (p_tmp->data));
             }
             else
             {
                gtk_widget_hide (GTK_WIDGET (p_tmp->data));
             }
          }
     
          g_list_free (p_list);
       }
    }
    Voici les argument dans l'ordre:
    1. Pointeur sur un GtkMenu (le menu que tu veux afficher en fait)
    2. L'index du menu à afficher (on commance la numérotation à zéro)
    3. TRUE = Visible, FALSE = Caché


    L'avantage avec cette fonction c'est qu'elle est à double usage, tu peux tout aussi bien afficher/cacher un menu complet ou seulement une commande de menu, c'est suivant le pointeur passé en paramètre !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. [CSS 2] Menu caché par bloc div
    Par dess5 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/02/2010, 22h35
  2. sous menu caché
    Par belek94 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 07/07/2008, 14h01
  3. problème Feuille MDI : menu caché
    Par vbstman dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/01/2008, 09h52
  4. Menu caché par Canvas
    Par Mnwjin dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/12/2006, 19h58
  5. Options du menu cachés sous un Panel.
    Par Franckito dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 22/09/2006, 11h38

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