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

Tkinter Python Discussion :

[Tkinter] classes et menus déroulants


Sujet :

Tkinter Python

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut [Tkinter] classes et menus déroulants
    Bonjour, je souhaite créer une classe (Frame) dans laquelle se trouve un Menu déroulant. J'y arrive via le widget Menubutton mais pas 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
     
    class MenuBar (Frame):
    	def __init__(self, boss=None):
    		Frame.__init__(self)
     
    		self.frame1 = Frame()
    		self.frame1.pack()
     
    		self.menu1 = Menu(self.frame1)
    		self.sous_menu1 = Menu(self.menu1, tearoff=0)
    		self.menu1.add_cascade(label=" Menu ", menu = self.sous_menu1)
    		self.sous_menu1.add_command(label = "Menu principal", command = self.ask_menu_principal)
     
    		self.sous_menu2 = Menu(self.menu1, tearoff=0)
    		self.menu1.add_cascade(label=" Informations ", menu = self.sous_menu2)
    		self.sous_menu2.add_command(label = "Aide", command = self.aide)
    		self.sous_menu2.add_command(label = "Version", command = self.version)
     
    		self.frame1.config(menu = self.menu1)
    Je recois une erreur avec le widget Menu concernant la derniere ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.frame1.config(menu = self.menu1)
    l'option menu est apparement inconnue...

    J'ai surement fait une grosse faute de classe mais ne comprend pas pourquoi avec un Menubutton ca fonctionne...


    Merci de votre aide

    ---------
    Je me suis encore trompé de section

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    Comme ça j'y arrive. Apparemment l'option menu n'existe que pour les instances Tk, et tu essayais de configurer ça sur une instance Frame (self.frame1)...
    Il existe peut être une autre solution (sans créer root), mais il est tard!


    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
    from Tkinter import * 
    
    class MenuBar (Frame):
    	def __init__(self, boss):
    		Frame.__init__(self)
    
    		self.boss = boss
    		
    		self.menu1 = Menu(self)
    		self.sous_menu1 = Menu(self.menu1, tearoff=0)
    		self.menu1.add_cascade(label=" Menu ", menu = self.sous_menu1)
    		self.sous_menu1.add_command(label = "Menu principal", command = self.destroy)
    
    		self.sous_menu2 = Menu(self.menu1, tearoff=0)
    		self.menu1.add_cascade(label=" Informations ", menu = self.sous_menu2)
    		self.sous_menu2.add_command(label = "Aide", command = self.destroy)
    		self.sous_menu2.add_command(label = "Version", command = self.destroy)
    
    		self.boss.config(menu = self.menu1)
    
    root = Tk()
    MenuBar(root)
    root.mainloop()

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    C'etait bien ça dont j'avais besoin, mais je ne comprend aps pourquoi il me retourne constamment la même erreur (option "menu" inconnue), m^me en copiant collant ton code dans le programme. Par contre en l'essayant seul, ca marche sans problème...
    Bizarre bizarre...

    Merci quand même...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    Si tu copies/colles direct dans ton programme, il peut y avoir des problèmes dus à la création du Tk...
    As-tu fait attention à hiérarchiser tous tes éléments graphiques en prenant en compte la création du Tk root? Si tu n'arrives pas à réoudre le problème, tu peux toujours mettre ton code graphique ici.

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

Discussions similaires

  1. Faire interagir 2 menus déroulants...
    Par Empty_body dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/03/2006, 14h38
  2. Synchroniser 2 menus déroulants
    Par El_c dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 26/12/2005, 22h38
  3. Charger contenu menus déroulants
    Par MYster dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2005, 15h07
  4. Remplacer des boutons par des menus déroulants?
    Par drthodt dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 17h37
  5. Réponses: 2
    Dernier message: 31/10/2003, 16h32

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