小鱼儿学Tkinter-Button 的事件绑定

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绑定事件示例

分析

  • 本例利用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绑定事件示例 鼠标单击

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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容