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 :

Problème de sous menu dynamique [GTK+/C]


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Problème de sous menu dynamique [GTK+/C]
    Bonjour!

    J'essaie de programmer un petit soft en GTK+/C. J'aimerai ajouter un sous menu dynamique (du genre les dernières fichiers ouverts). Ainsi, pour ajouter la liste des fichiers, je fais ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pMenuItem = gtk_menu_item_new_with_label(filename);
    gtk_menu_shell_prepend(GTK_MENU_SHELL(pSubMenu), pMenuItem);
    gtk_widget_show_now(GTK_WIDGET(pMenuItem));
    g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(OnOpenRecent), NULL);
    filename est une chaîne de caractères contenant un chemin de fichier.
    Ce code marche bien à l'initialisation de la fenêtre (c'est-à-dire avant le gtk_main).
    Mais, lorsque la fenêtre est déjà affiché et que je veux ajouter une nouvelle entrée, j'ai deux entrées qui sont affichées (au lieu d'une) ! J'ai essayé d'enlever le gtk_widget_show_now, cette fois, j'ai rien qui s'ajoute. J'ai aussi utilisé les autres fonctions (gtk_widget_show et gtk_widget_show_all), j'ai le même résultat avec gtk_widget_show_now.
    Et là, je bloque .

    Merci d'avance à toutes les réponses.

  2. #2
    Membre expérimenté
    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
    Points : 1 633
    Points
    1 633
    Par défaut
    Tu passes peut être plusieurs fois dans ce code sans t'en rendre compte ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Tu passes peut être plusieurs fois dans ce code sans t'en rendre compte ?
    Je suis sûr que non ! Car, si je commente le code, j'ai rien.

  4. #4
    Membre expérimenté
    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
    Points : 1 633
    Points
    1 633
    Par défaut
    ? Si le code en question est exécuté plusieurs fois, quand tu le commentes, il sera effectivement appelé 0 fois. Mets un g_print au moment de l'ajout des éléments histoire d'être sûr que le programme se comporte bien de la façon que tu imagines.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    T'as raison! C'est appeler deux fois
    Je ne trouve pas où est le 2ème appel.
    Je vais essayé de voir avec gdb

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    C'est bon, j'ai trouvé! C'est l'oubli d'un else qui provoque l'appel vers ce code or c'est n'est pas nécessaire

    Merci beaucoup en tout cas de ton aide. (ça fais 2 semaines que je me casse la tête )

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

Discussions similaires

  1. menu et sous menu dynamiques
    Par cels dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/11/2006, 12h54
  2. Sous menu Dynamique
    Par philippe30 dans le forum Delphi
    Réponses: 2
    Dernier message: 25/05/2006, 17h04
  3. [VB6] sous menu dynamique
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/03/2006, 14h13
  4. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  5. ContextMenu de l'explorer: Problème de sous menu
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 26/02/2004, 08h06

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