[英]How does canvas.bind(event, handler) pass event to the event handler?
在Python中將參數傳遞給函數的主要方式是:
def function(x):
# function definition
function(y)
也就是說,當我們調用function
時,我們在圓括號內將一個值傳遞給它。
但是,我使用的是canvas.bind()
因此canvas.bind()
方法的工作原理如下:
def event_handler(event):
# function definition
canvas.bind('event-name', event_handler)
也就是說,當canvas.bind
調用方法event_handler
,它似乎沒有像人們期望的那樣將參數'event-name'
傳遞給event_handler
(即,通過執行event_handler('event-name')
)。 相反,它只是不帶任何參數地調用event_handler
。
那么event-handler
如何按照其定義接收應該接收的事件參數?
就像您期望的那樣。 在綁定中,您要提供要調用的函數的名稱 。 當事件觸發時,處理該事件的內部tkinter代碼實際上就像調用它一樣: event_handler(event)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.