[英]Why does this bind function not work in tkinter?
import tkinter
import tkinter.messagebox
class MainWindow:
def __init__(self, master: tkinter.Tk, title: str):
self.master = master
self.master.title(title)
self.master.geometry(f"{int(self.master.winfo_screenwidth() / 2)}x{int(self.master.winfo_screenheight() / 2)}")
self.master.state("zoomed")
self.master.focus_set()
self.master.grid_columnconfigure(2, weight=1)
self.master.grid_rowconfigure(2, weight=1)
self.menu_bar = tkinter.Menu(master)
self.file_menu = tkinter.Menu(master, tearoff=0)
self.file_menu.add_command(label="Hello World!", command=self.hello_world_message)
self.file_menu.add_separator()
self.file_menu.add_command(label="Exit", accelerator="Ctrl+Q", command=self.exit)
self.menu_bar.add_cascade(label="File", menu=self.file_menu)
self.label = tkinter.Label(self.master, text="Hello World!", font=("Courier", 50))
self.label.grid(row=2, column=2)
self.master.bind("<Control-Q>", self.exit) # Why doesn't this work?
self.master.config(menu=self.menu_bar)
@staticmethod
def hello_world_message():
tkinter.messagebox.showinfo("Hello World!", "Hello World!")
def exit(self):
self.master.destroy()
root = tkinter.Tk()
MainWindow(root, "Desktop Applications")
root.mainloop()
self.master.bind("<Control-Q>", self.exit)
不工作。
我正在按 Ctrl + Q,但它什么也沒做。 文件菜單退出命令有效,但綁定無效。
為什么綁定不起作用?
我相信這些字母是區分大小寫的。 對於您當前的綁定,您需要 Control + Shift + q。
要將其更改為小寫,請嘗試"<Control-q>"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.