小白學tkinter(事件之(事件繫結))
阿新 • • 發佈:2019-02-05
對於每個元件來說,可以通過bind()方法將函式或者方法繫結到具體的事件上,當滿足條件時,tkinter就會呼叫handler().
語法:widget.bind(event,handler)
一、滑鼠事件例子
滑鼠左鍵事件
from tkinter import *
root = Tk()
def callback(event):
#相對於指定視窗座標,x_root和y_root相對於整個視窗座標。
#(左上角座標是(0,0))
print('現在的位置:',event.x,event.y)
frame = Frame(root,width = 200,height = 200 ,bg = 'white')
#bind()方法繫結滑鼠左鍵單擊和回撥函式
frame.bind('<Button-1>',callback)
frame.pack()
mainloop()
滑鼠持續觸發事件
from tkinter import *
root = Tk()
def callback(event):
print('現在的位置:',event.x,event.y)
frame = Frame(root,width = 200,height = 200,bg = 'white')
frame.bind('<Motion>',callback)
frame.pack()
mainloop()
二、鍵盤事件例子
from tkinter import *
root = Tk()
def callback(event):
#char 是event的一個屬性,按鍵對應的字元(按鍵專屬屬性)
print('點選位置:',event.char)
frame = Frame(root,width = 200,height = 200)
frame.bind('<Key>',callback)
#focus_set()方法是按鍵獲取焦點,這個是按鍵類必須的。
frame.focus_set()
frame.pack()
mainloop()