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] Menu


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut [Tkinter] Menu
    Voici 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
     
    def __init__(self, boss):
          self.parent = boss
     
          # Creation du menu
          self.menu = Menu(self.parent)
          self.parent.config(menu = self.menu)
     
          self.filemenu = Menu(self.menu)
          self.menu.add_cascade(label = "File", menu = self.filemenu)
          self.filemenu.add_command(label = "Log", command = self.log)
          self.filemenu.add_command(label = "Exit", command = self.parent.destroy)
     
          self.helpmenu = Menu(self.menu)
          self.menu.add_command(label = "About", command = self.about)
          self.menu.add_command(label = "Exit", command = self.parent.destroy)
          # Fin menu
    Quand j'appuie sur File, j'ai donc un onglet avec Log et Exit. Mais entre File et Log, il y a une séparation (plusieurs tirets) et quand j'appuie dessus une autre petite fenetre de menu se crée. J'aimerai que rien ne se produise quand j'appuie sur les tirets ou alors carrément ne pas les afficher.
    Si quelqu'un a une idée, c'est assez urgent ...

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    Je n'ai jamais utilisé Tkinter, donc je peux avoir mal interprété la doc, mais en principe, le constructeur de Menu te permet de spécifier des options sur son comportement. On trouve notamment l'option tearoff qui permet de définit si un menu est détachable ou non.

    Ainsi, pour qu'il ne le soit pas, je pense que ton code doit ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.filemenu = Menu(self.menu, tearoff=0)
    Si ma proposition ne fonctionne pas, voilà la page d'où j'ai tiré l'option, en espérant que tu y trouveras la solution

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    yep exactement ce qu'il me fallait ^^
    et merci pour la doc j'ai limpression que ton lien est plus fourni que la doc officiel

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    Par contre ce que je ne trouve toujours pas comment laisser une fenêtre toujours au sommet. C'est-a-dire faire comme les fenetres "Ouvrir" : lorsqu'on appuie a coté on entend un bip et on reste toujours sur la meme fenetre juska ce qu'elle soit fermé.
    C'est aussi assez urgent, donc si quelqu'un sait .... merci d'avance

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    Bah, à moins de trouver une fenêtre qui fonctionne en modal...

    Y a peut-être moyen de coder sur l'événement "perte de focus" (OnLostFocus ?). Si ta fenêtre perd le focus, le lui rendre automatiquement...

  6. #6
    Membre chevronné
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Par défaut
    Pour une fenetre modale, je fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    self.fen_modale=Toplevel()
    Ton code...
    self.fen_modale.focus_set()
    self.fen_modale.grab_set()
    self.fen_modale.wait_window() #je ne suis pas sur de son utilité

  7. #7
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    ok c résolu merci bien ^^
    ca marche avec ou sans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.fen_modale.wait_window()
    donc je ne sais pas trop a quoi ca sert mais ca marche :)

  8. #8
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    Pour plus d'infos sur l'utilisation de la méthode wait_window, y a cette page, si ça intéresse quelqu'un

    http://www.pythonware.com/library/tk...og-windows.htm

    (N'oublie pas le tag "résolu", en bas à gauche de la page )

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

Discussions similaires

  1. MacOS : problème avec Tkinter.Menu
    Par nymformaticien dans le forum Tkinter
    Réponses: 1
    Dernier message: 10/06/2010, 10h13
  2. problème menu Tkinter
    Par pedro99 dans le forum Tkinter
    Réponses: 1
    Dernier message: 06/11/2007, 20h09
  3. [Tkinter] Integration d'un menu déroulant
    Par topzozo dans le forum Tkinter
    Réponses: 1
    Dernier message: 17/04/2007, 11h12
  4. [Tkinter] sous menu
    Par Makino dans le forum Tkinter
    Réponses: 4
    Dernier message: 08/03/2006, 15h14
  5. [Tkinter] Menu grisé (grayed)
    Par t_om84 dans le forum Tkinter
    Réponses: 2
    Dernier message: 06/07/2005, 15h20

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