1. 程式人生 > >小白學tkinter(事件之(事件繫結))

小白學tkinter(事件之(事件繫結))

對於每個元件來說,可以通過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()