簡體   English   中英

為什么這個綁定 function 在 tkinter 中不起作用?

[英]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>"

https://www.tcl.tk/man/tcl8.6/TkCmd/keysyms.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM