1. command 事件绑定
代码:
import tkinter as tk
root = tk.Tk()
counter = 0
def clickCount():
global counter
counter += 1
lab1.config(text=str(counter))
lab1 = tk.Label(root,text = 'null')
lab1.pack()
btn1=tk.Button(root,text ='确定',command= clickCount)
btn1.pack()
root.mainloop()

分析
- 本例利用command绑定函数clickCount
- global语句是Python中唯一看起来有些像声明语句的语句。它并不是一个类型或大小的声明,它是一个命名空间的声明。它告诉Python函数打算生成一个或多个全局变量名。也就是说,存在于整个模块内部作用域(命名空间)的变量名。
- lab1.config(text=str(counter)) 改变 lab1 的文本显示内容
使用command时,虽然比较简单方便,但也存在很大的局限性:
- 无法为具体的事件(比如鼠标移动、按键事件)绑定事件处理方法;
- 程序无法获得事件相关信息。
2.bind 绑定事件
from tkinter import *
root=Tk()
def move(event):
lab2['text'] = '鼠标移动到:(%s,%s)'% (event.x,event.y)
def click(event):
lab2['text'] = '鼠标在(%s,%s)处单击'% (event.x,event.y)
lab1 = Label(root,height=5,width=50)
lab1.bind('<Motion>',move)
lab1.bind('<Button-1>',click)
lab2 = Label(root)
lab1.pack()
lab2.pack()
root.mainloop()


bind 绑定:组件名.bind(event,回调函数)
常用 event 事件
事件代码 | 事件名称 |
---|---|
<Button-1> | 鼠标左键单击 |
<Double-Button-1> | 鼠标左键双击 |
<Triple-Button-1> | 鼠标左键三击 |
<Button-2> | 鼠标中键单击 |
<Button-3> | 鼠标右键单击 |
<ButtonRelease-3> | 鼠标右键释放 |
<B1-Motion> | 鼠标左键按下并移动 |
<Enter> | 鼠标移入事件 |
<Leave | 鼠标移出事件 |
<FocusIn> | 聚焦事件 |
<FocusOut> | 失焦事件 |
<Return> | 按下回车键 |
<Shift F> | 按下shift + F(待验证) |
<Num_lock> | 按下数字锁定键(待验证) |
取消绑定:组件名.unbind(event)
网友评论