Halli Hallo,
ich habe die suchfunktion schon wie ein blöder zu tode
bedient und konnte nichts finden. hat jemand mal
ein musterbeispiel für ein menü was sich auf rechtsklick öffnet?
also z.b. bei dateien wie kopieren, einfügen ausschneiden oder
bei fenster maximieren, minimieren und wiederherstellen.
ich könnte wohl über toplevel ein neues fenster auf rechtsklick erzeugen lassen aber das suche ich nicht :>
menu auf rechtsklick
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Bei # entweder bleibt das Menü nur so lange offen, wie Du die rechte Maustaste drückst, bei # oder bleibts ewig
Gruß, mawe
Code: Alles auswählen
from Tkinter import *
root = Tk()
l = Label(root, text="Right-click to display menu", width=40, height=20)
l.pack()
popup = Menu(root, tearoff=0)
popup.add_command(label="New")
popup.add_command(label="Save")
popup.add_separator()
popup.add_command(label="Quit")
def do_popup(event):
# entweder
try:
popup.tk_popup(event.x_root, event.y_root, 0)
finally:
popup.grab_release()
# oder
#popup.post(event.x_root, event.y_root)
l.bind("<Button-3>", do_popup)
root.mainloop()
Gruß, mawe
also das klappt schonmal super danke
aber dadurch entsteht ein kleines neues problem ^^
in meiner listbox sind dateinamen als einträge. durch rechtsklick sollen
dann halt die möglichen optionen wie kopieren etc kommen.
doch leider setzt er den anchor auf die einträge nur mit linksklick.
habe das bis jetzt so versucht was aber nicht geht:
eben ist mir aufgefallen das nearest anscheinend nen index und keine y-koordinate braucht ^^
desweiteren öffnet sich das menü beim rechtsklick, nicht wie beim
normalen windows mit der linken ecke am mauszeiger sondern
mitten drin.
hoffe das war verständlich :>
*edit* ok problem 1 dass das menu nicht mit der linken oberen ecke am
mauszeiger ist habe ich gelöst. einfach +32 an x_root und +10 an y_root
rangehangen :>
aber dadurch entsteht ein kleines neues problem ^^
in meiner listbox sind dateinamen als einträge. durch rechtsklick sollen
dann halt die möglichen optionen wie kopieren etc kommen.
doch leider setzt er den anchor auf die einträge nur mit linksklick.
habe das bis jetzt so versucht was aber nicht geht:
Code: Alles auswählen
self.listbox_unten.bind('<Button-3>', self.openFileMenu)
def openFileMenu(self, event):
popup = Menu(untenframe, tearoff=0)
popup.add_command(label="Copy")
popup.add_command(label="Pase")
popup.add_separator()
popup.add_command(label="Cut")
try:
popup.tk_popup(event.x_root, event.y_root, 0)
self.listbox_unten.select_anchor(int(self.listbox_unten.nearest(int(event.y_root))))
finally:
popup.grab_release()
desweiteren öffnet sich das menü beim rechtsklick, nicht wie beim
normalen windows mit der linken ecke am mauszeiger sondern
mitten drin.
hoffe das war verständlich :>
*edit* ok problem 1 dass das menu nicht mit der linken oberen ecke am
mauszeiger ist habe ich gelöst. einfach +32 an x_root und +10 an y_root
rangehangen :>