Python笔记_第四篇_高阶编程_GUI编程之Tkinter_5.鼠标事件
1. 鼠标点击事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): # 事件属性 print(event.x,event.y) # 小控件局域x轴和y轴的举例 # 绑定事件: # bind:参数1绑定事件,参数2绑定这个事件的函数 # 事件内容: # <Button-1> 1-鼠标左键 2-鼠标滚轮 3-鼠标右键 # <Double-Button-1> 1-鼠标左键双击 2-鼠标滚轮双击 3-鼠标右键双击 # <Triple-Button-1> 同上:变为三击 button1 = tkinter.Button(win,text="leftmouse button") button1.bind("<Button-1>",func) #更换事件 button1.pack() # 保持循环不让窗口关闭__编程尾部 win.mainloop()
2. 鼠标移动事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): # 事件属性 print(event.x,event.y) # 小控件局域x轴和y轴的举例 # 绑定事件: # bind:参数1绑定事件,参数2绑定这个事件的函数 # <B1-Motion> 1-表示鼠标左键移动 2-表示鼠标中键移动 3-表示鼠标右键移动 # 按住事件内容拖动就会出现。 # 事件内容: label1 = tkinter.Label(win,text="Thomas is a good man") label1.pack() # label1.bind("<B1-Motion>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
3. 鼠标释放事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): # 事件属性 print(event.x,event.y) # 小控件局域x轴和y轴的举例 # 绑定事件: # bind:参数1绑定事件,参数2绑定这个事件的函数 # <ButtonRelease-1> 1-表示释放鼠标左键 2-表示释放鼠标中键 3-表示释放鼠标右键 # # 事件内容: label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") label1.pack() # label1.bind("<ButtonRelease-1>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
4. 进入与离开事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): # 事件属性 print(event.x,event.y) # 小控件局域x轴和y轴的举例 # 绑定事件: # bind:参数1绑定事件,参数2绑定这个事件的函数 # <Enter>:鼠标光标进入控件时触发 # <Leave>:鼠标光标离开控件时触发 # 事件内容: label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") label1.pack() # label1.bind("<Enter>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
5. 响应所有按键的事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 # def func(event): # print("event.chr=",event.char) # print("event.keycode=", event.keycode) # # 响应所有按键的事件1 # # <Key>:响应所有按键的事件,从键盘输入任何键 # label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") # label1.focus_set() # 设置焦点 # label1.pack() # # # label1.bind("<Key>",func) # 响应所有按键的事件2,直接给窗体设置响应,不用再设置焦点了。 def func(event): print("event.chr=",event.char) print("event.keycode=", event.keycode) win.bind("<Key>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
6. 响应特殊按键事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): print("event.chr=",event.char) print("event.keycode=", event.keycode) # 响应特殊按键的事件 # <Shift_L>:L-响应的是左侧的Shift,R-响应的是右侧的Shift # <F5>: # <Return>:当单击回车键的时候 # <BackSpace>:退格键 label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") label1.focus_set() # 设置焦点 label1.pack() # label1.bind("<Shift_L>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
7. 指定按键事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): print("event.chr=",event.char) print("event.keycode=", event.keycode) # 指定按键事件: # a:指定键盘的a,响应事件,直接写按键的名 label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") label1.focus_set() # 设置焦点 label1.pack() # label1.bind("a",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
8. 组合按键事件:
图示:
实例:
import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置 def func(event): print("event.chr=",event.char) print("event.keycode=", event.keycode) # 组合按键事件: # <Control-Alt-b>:同时按下这三个键响应事件 # <Shift-Up>: label1 = tkinter.Label(win,text="Thomas is a good man",bg="red") label1.focus_set() # 设置焦点 label1.pack() # label1.bind("<Control-Alt-b>",func) # 保持循环不让窗口关闭__编程尾部 win.mainloop()
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。