本文主要介绍Python tkinter 事件方法和事件属性及鼠标事件示例。
tkinter系列文章
python tkinter窗口简单实现
Python tkinter (1) —— Label标签
Python tkinter (2) —— Button标签
Python tkinter (3) —— Entry标签
Python tkinter (4) —— Text控件
Python tkinter (5) 选项按钮与复选框
Python tkinter (6) ——Listbox
Python tkinter (8) ——Spinbox控件
Python tkinter (9) ——Menu控件
Python tkinter (10) ——Combobox控件
Python tkinter (11) —— Frame控件
Python tkinter (12) —— Treeview控件
目录
事件方法
事件属性
鼠标点击事件
单击事件
双击事件
三击事件
鼠标移动事件
鼠标释放事件
光标进入事件
光标离开事件
总结
事件 |
描述 |
|
当鼠标左键被按住在小构件且移动鼠标时事件发生 |
|
Button-1、Button-2、Button-3 表明左键、中问键和右键,当在小构件上单击鼠标左键时,Tkinter 会自动抓到限标指针的位置,ButtonPressed-i是Button-i的代名词 |
|
当释放鼠标左键时事件发生 |
|
当双击鼠标左键时事件发生 |
|
当鼠标光标进入小构件时事件发生 |
|
当单击一个键时事件发生 |
|
当鼠标光标离开小构件时事件发生 |
|
当单击“Enter”键时事件发生,可以将键盘上的任意键(像“A”、“B”、”Up”"Down”、“Left”、“Right”)和一个事件绑定 |
|
当单击“Shift+A”键时事件发生,可以将Alt、Shift和Control和其他键组合 |
|
当三次单击鼠标左键时事件发生 |
事件属性 |
描述 |
char |
从键盘输入的和按键事件相关的字符 |
keycode |
从键盘输入的和按键事件相关的键的键代码(即统一码) |
keysym |
从键盘输人的和按键事件相关的键的键符号(即字符) |
num |
按键数字(1、2、3)表明按下的是哪个鼠标键 |
widget |
触发这个事件的小构件对象 |
x和y |
当前鼠标在小构件中以像素为单位的位置 |
xroot和yroot |
当前鼠标相对于屏幕左上角的以像素为单位的位置 |
单击分为左键、中键、右键三种,使用bind绑定
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
def click_fun(event):
print(event.x, event.y)
button1 = tkinter.Button(tk, text='鼠标左键')
button1.pack()
button1.bind('' , click_fun)
button2 = tkinter.Button(tk, text='鼠标右键')
button2.pack()
button2.bind('' , click_fun)
button3 = tkinter.Button(tk, text='鼠标中键')
button3.pack()
button3.bind('' , click_fun)
tk.mainloop()
使用bind绑定
示例如下:
# 鼠标左键双击
# 鼠标右键双击
# 鼠标中键双击
button4 = tkinter.Button(tk, text='鼠标左键双击')
button4.pack()
button4.bind("" , click_fun)
使用bind绑定
示例如下:
# 鼠标左键三击
# 鼠标右键三击
# 鼠标中键三击
button5 = tkinter.Button(tk, text='鼠标左键三击')
button5.pack()
button5.bind("" , click_fun)
鼠标移动事件在绑定
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
label1 = tkinter.Label(tk, text='中华儿女多奇志,不爱红装爱武装')
label1.pack()
def mouse_fun(event):
print(event.x, event.y)
# 鼠标左键
label1.bind('' , mouse_fun)
# 鼠标中键
label1.bind('' , mouse_fun)
# 鼠标右键
label1.bind('' , mouse_fun)
tk.mainloop()
对文本控件绑定
在文本上点击或按住然后释放即可触发。
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
def release_fun(event):
print(event.x, event.y)
# 释放鼠标左键
label1 = tkinter.Label(tk, text='莫听穿林打叶声')
label1.pack()
label1.bind('' , release_fun)
# 释放鼠标右键
label2 = tkinter.Label(tk, text='何妨吟啸且徐行')
label2.pack()
label2.bind('' , release_fun)
# 释放鼠标中键
label3 = tkinter.Label(tk, text='回首向来萧瑟处,归去,也无风雨也无晴')
label3.pack()
label3.bind('' , release_fun)
tk.mainloop()
绑定
绑定
示例如下:
import tkinter
tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
def entry_fun(event):
print('进入事件')
print(event.x, event.y)
def leave_fun(event):
print('离开事件')
print(event.x, event.y)
# 鼠标光标进入控件时触发
label1 = tkinter.Label(tk, text='莫听穿林打叶声')
label1.pack()
label1.bind('' , entry_fun)
# 鼠标光标离开控件时触发
label2 = tkinter.Label(tk, text='何妨吟啸且徐行')
label2.pack()
label2.bind('' , leave_fun)
tk.mainloop()
本文主要介绍Python tkinter 事件方法和事件属性及几种鼠标事件和示例。