当前位置:   article > 正文

Python tkinter (13) —— 事件_python tkinter 事件

python tkinter 事件

本文主要介绍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控件

目录

事件方法

事件属性

鼠标点击事件

单击事件

双击事件

三击事件

鼠标移动事件

鼠标释放事件

光标进入事件

光标离开事件

总结


事件方法

事件

描述

<Bi-Motion>

当鼠标左键被按住在小构件且移动鼠标时事件发生

<Button-i>

Button-1、Button-2、Button-3 表明左键、中问键和右键,当在小构件上单击鼠标左键时,Tkinter 会自动抓到限标指针的位置,ButtonPressed-i是Button-i的代名词

<ButtonRelease-i>

当释放鼠标左键时事件发生

<Double-Button-i>

当双击鼠标左键时事件发生

<Enter>

当鼠标光标进入小构件时事件发生

<Key>

当单击一个键时事件发生

<Leave>

当鼠标光标离开小构件时事件发生

<Return>

当单击“Enter”键时事件发生,可以将键盘上的任意键(像“A”、“B”、”Up”"Down”、“Left”、“Right”)和一个事件绑定

<Shift+A>

当单击“Shift+A”键时事件发生,可以将Alt、Shift和Control和其他键组合

<Triple-Button-i>

当三次单击鼠标左键时事件发生

事件属性

事件属性

描述

char

从键盘输入的和按键事件相关的字符

keycode

从键盘输入的和按键事件相关的键的键代码(即统一码)

keysym

从键盘输人的和按键事件相关的键的键符号(即字符)

num

按键数字(1、2、3)表明按下的是哪个鼠标键

widget

触发这个事件的小构件对象

x和y

当前鼠标在小构件中以像素为单位的位置

xroot和yroot

当前鼠标相对于屏幕左上角的以像素为单位的位置

鼠标点击事件

单击事件

单击分为左键、中键、右键三种,使用bind绑定<Button-i>来实现。

示例如下:

  1. import tkinter
  2. tk = tkinter.Tk()
  3. tk.title('简单示例')
  4. tk.geometry('300x200+200+20')
  5. def click_fun(event):
  6. print(event.x, event.y)
  7. button1 = tkinter.Button(tk, text='鼠标左键')
  8. button1.pack()
  9. button1.bind('<Button-1>', click_fun)
  10. button2 = tkinter.Button(tk, text='鼠标右键')
  11. button2.pack()
  12. button2.bind('<Button-3>', click_fun)
  13. button3 = tkinter.Button(tk, text='鼠标中键')
  14. button3.pack()
  15. button3.bind('<Button-2>', click_fun)
  16. tk.mainloop()

双击事件

使用bind绑定<Double-Button-i>来实现。

示例如下:

  1. # <Double-Button-1> 鼠标左键双击
  2. # <Double-Button-3> 鼠标右键双击
  3. # <Double-Button-2> 鼠标中键双击
  4. button4 = tkinter.Button(tk, text='鼠标左键双击')
  5. button4.pack()
  6. button4.bind("<Triple-Button-1>", click_fun)

三击事件

使用bind绑定<Double-Button-i>来实现。

示例如下:

  1. # <Triple-Button-1> 鼠标左键三击
  2. # <Double-Button-3> 鼠标右键三击
  3. # <Double-Button-2> 鼠标中键三击
  4. button5 = tkinter.Button(tk, text='鼠标左键三击')
  5. button5.pack()
  6. button5.bind("<Triple-Button-1>", click_fun)

鼠标移动事件

鼠标移动事件在绑定<Bi-Motion>后,需要鼠标移动到文本上后,按住进行移动触发。

示例如下:

  1. import tkinter
  2. tk = tkinter.Tk()
  3. tk.title('简单示例')
  4. tk.geometry('300x200+200+20')
  5. label1 = tkinter.Label(tk, text='中华儿女多奇志,不爱红装爱武装')
  6. label1.pack()
  7. def mouse_fun(event):
  8. print(event.x, event.y)
  9. # 鼠标左键
  10. label1.bind('<B1-Motion>', mouse_fun)
  11. # 鼠标中键
  12. label1.bind('<B2-Motion>', mouse_fun)
  13. # 鼠标右键
  14. label1.bind('<B3-Motion>', mouse_fun)
  15. tk.mainloop()

鼠标释放事件

对文本控件绑定<ButtonRelease-i>后,使用鼠标相应按键,

在文本上点击或按住然后释放即可触发。

示例如下:

  1. import tkinter
  2. tk = tkinter.Tk()
  3. tk.title('简单示例')
  4. tk.geometry('300x200+200+20')
  5. def release_fun(event):
  6. print(event.x, event.y)
  7. # 释放鼠标左键
  8. label1 = tkinter.Label(tk, text='莫听穿林打叶声')
  9. label1.pack()
  10. label1.bind('<ButtonRelease-1>', release_fun)
  11. # 释放鼠标右键
  12. label2 = tkinter.Label(tk, text='何妨吟啸且徐行')
  13. label2.pack()
  14. label2.bind('<ButtonRelease-3>', release_fun)
  15. # 释放鼠标中键
  16. label3 = tkinter.Label(tk, text='回首向来萧瑟处,归去,也无风雨也无晴')
  17. label3.pack()
  18. label3.bind('<ButtonRelease-2>', release_fun)
  19. tk.mainloop()

光标进入事件

绑定<Enter>事件,鼠标光标进入控件时触发。

光标离开事件

绑定<Leave>事件,鼠标光标离开控件时触发。

示例如下:

  1. import tkinter
  2. tk = tkinter.Tk()
  3. tk.title('简单示例')
  4. tk.geometry('300x200+200+20')
  5. def entry_fun(event):
  6. print('进入事件')
  7. print(event.x, event.y)
  8. def leave_fun(event):
  9. print('离开事件')
  10. print(event.x, event.y)
  11. # 鼠标光标进入控件时触发
  12. label1 = tkinter.Label(tk, text='莫听穿林打叶声')
  13. label1.pack()
  14. label1.bind('<Enter>', entry_fun)
  15. # 鼠标光标离开控件时触发
  16. label2 = tkinter.Label(tk, text='何妨吟啸且徐行')
  17. label2.pack()
  18. label2.bind('<Leave>', leave_fun)
  19. tk.mainloop()

总结

本文主要介绍Python tkinter 事件方法和事件属性及几种鼠标事件和示例。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/761010
推荐阅读
相关标签
  

闽ICP备14008679号