Neben dem vergurkten root, das stattdessen ein self sein sollte, liegt das Problem in deinem rklick.unbind - damit entfernst du augenscheinlich das Binding fuer den Menueeintrag. So funktiontiert es fuer mich:
Code: Alles auswählen
import tkinter as tk
class Rechtsklick():
def __init__(self, master):
self.master = master
self.aMenu = tk.Menu(master, tearoff=0)
self.aMenu.config(bg="white")
self.aMenu.add_command(label="löschen", command=self.löschen)
self.aMenu.add_command(label="Alles löschen", command=self.alles_löschen)
def löschen(self):
print("gelöscht")
def alles_löschen(self):
print("alles gelöscht")
def popup(self, event):
self.aMenu.post(self.master.winfo_pointerx(), self.master.winfo_pointery())
def verstecken(self, event):
self.aMenu.unpost()
def unbind(self, binding):
self.aMenu.unbind(binding)
def main():
root = tk.Tk()
root.config(bg="white")
rklick = Rechtsklick(root)
#binding = root.bind_all("<Button-1>", rklick.verstecken)
#rklick.unbind(binding)
tk.Label(root, text="Name", fg="darkblue", bg="white", font=('arial', 15)).grid(row=0, column=0, sticky="w")
root.name_eingabe = tk.Entry(root, bg="white", width=30, font=('arial', 13))
root.name_eingabe.grid(row=1, column=0, sticky="w")
root.name_eingabe.bind("<Button-3>", rklick.popup)
tk.Label(root, text="Vorname", fg="darkblue", bg="white", font=('arial', 15)).grid(row=2, column=0, sticky="w")
root.name_eingabe = tk.Entry(root, bg="white", width=30, font=('arial', 13))
root.name_eingabe.grid(row=3, column=0, sticky="w")
root.name_eingabe.bind("<Button-3>", rklick.popup)
root.mainloop()
if __name__ == "__main__":
main()