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 :

[Tix] Menu contextuel sur un Canvas.


Sujet :

Tkinter Python

  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut [Tix] Menu contextuel sur un Canvas.
    Bonjour,

    J'aimerai mettre en place des objets sur un Canvas. jusque là rien de trés compliqué.
    je crée mes objets a partir de class que j'ai préalablement codé.
    pour chacun des objet j'aimerai ajouter une méthode permettant d'afficher un menu Contextuel, dans lequel sont regroupé mes diférents option pour l'objet en question.
    J'ai essayé avec un popupMenu de tix, mais il me jette a chaque fois. Normal, car Canvas, ou autre objet type create_image ne sont pas des conteneurs.
    Comment puis je faire? Merci

    ci joint le message d'erreur
    H:\objet_construction_cfg\interface.py
    Traceback (most recent call last):
    File "H:\objet_construction_cfg\interface.py", line 38, in ?
    app=Interface()
    File "H:\objet_construction_cfg\interface.py", line 18, in __init__
    self.monCanvas=page.Page(self.frmCan.interior(),largeur=800,hauteur=600)
    File "H:\objet_construction_cfg\page.py", line 15, in __init__
    self.men=PopupMenu(self,title='mon menu')
    File "C:\Python24\Lib\lib-tk\Tix.py", line 1260, in __init__
    TixWidget.__init__(self, master, 'tixPopupMenu', ['options'], cnf, kw)
    File "C:\Python24\Lib\lib-tk\Tix.py", line 307, in __init__
    self.tk.call(widgetName, self._w, *extra)
    _tkinter.TclError: invalid command name "tixPopupMenu"
    Script terminated.
    d'avance.

  2. #2
    Membre averti
    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
    Points : 388
    Points
    388
    Par défaut
    Bonjour,
    Sans utiliser Tix :
    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
    from Tkinter import *
     
    class MyCanvas(Canvas):
        def __init__(self, root =None):
            Canvas.__init__(self)
            self.configure(width=250, height=250,bg = "WHITE")
            self.create_line(10,10,50,30)
            self.create_rectangle(50,50,80,90)
            self.bind("<Button-3>", self.afficheMenu)
            self.menu = Menu(root, tearoff=0)
            self.menu.add_command(label="Type", command=self.getType)
     
        def afficheMenu(self,event):
            self.x,self.y = event.x,event.y
            self.menu.post(event.x_root, event.y_root)
     
        def getType(self):
            self.item=self.find_closest(self.x,self.y,halo=5)
            print self.type(self.item)
     
    if __name__=='__main__':
        root=Tk()
        c=MyCanvas(root)
        c.pack()
        root.mainloop()
    Je ne sais pas si ça répond à ton problème

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    Merci

    ca répond a ma question. Maintenant a moi d'adapter pour que le menu soit différent en fonction de l'objet.
    en effet je n'aurais pas obligatoirement les mêmes options en fonction d'un objet a l'autre.

    merci encore

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

Discussions similaires

  1. [MFC] Menu contextuel sur CListBox
    Par rabobsky dans le forum MFC
    Réponses: 2
    Dernier message: 21/02/2006, 14h11
  2. Menu contextuelle sur une liste?
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2006, 14h33
  3. Afficher un menu contextuelle sur le click droit d'une image
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h19
  4. Menu contextuel sur CStatic
    Par benahpets dans le forum MFC
    Réponses: 8
    Dernier message: 05/07/2005, 10h27
  5. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

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