Tkinter 鼠标绑定的基本应用

Tkinter 鼠标绑定的基本应用

鼠标事件的基本应用,这个程序在执行时会建立300×180大小的窗口,当单击鼠标左键时,在Python Shell窗口中会列出单击事件时的坐标。

示例1

from tkinter import *
def callback(event):                     # 事件处理程序
    print("Clicked at",event.x,event.y)  # 打印坐标

root = Tk()
root.title("apidemos.com")   # 窗口标题    
frame = Frame(root,width=300,height=180,bg="yellow")
frame.bind("<Button-1>",callback)   # 绑定callback
frame.pack()

root.mainloop()

输出:

Tkinter 鼠标绑定的基本应用

下面是Python Shell示范输出界面。

Tkinter 鼠标绑定的基本应用

在程序第3行绑定的事件处理程序中必须留意,callback(event)需有参数event,event名称可以自定义,这是因为事件会传递事件对象给此事件处理程序。

示例2

移动鼠标时可以在窗口右下方看到鼠标目前的坐标。

from tkinter import *
def mouseMotion(event):                     # Mouse移动
    x = event.x
    y = event.y
    textvar = "Current mouse position -> x:{}, y:{}".format(x,y)
    var.set(textvar)

root = Tk()
root.title("apidemos.com")                  # 窗口标题    
root.geometry("300x180")

x, y = "###", "###"
var = StringVar()
text = "Current mouse position -> x:{}, y:{}".format(x,y)
var.set(text)

lab = Label(root,textvariable=var,bg="yellow")  # 建立标签
lab.pack(anchor=S,side=RIGHT,padx=10,pady=10) # lab.pack(anchor=S,side=RIGHT,padx=10,pady=10)
# root.bind("<Motion>",mouseMotion)
root.bind("<Button-1>",mouseMotion)   # 添加事件处理程序  # "<Motion>"
root.bind("<Button-3>",mouseMotion)
# "<B1-Motion>"  
root.mainloop()

输出:

Tkinter 鼠标绑定的基本应用

示例3

这个程序在执行时,如果鼠标光标进入Exit功能按钮,会在黄色底的标签区域显示“鼠标进入Exit功能按钮”,如果鼠标光标离开Exit功能按钮,会在黄色底的标签区域显示“鼠标离开Exit功能按钮”,如果单击Exit按钮,程序结束。

from tkinter import *
def enter(event):                     # Enter事件处理程序  
    x.set("Mouse into Exit function button")
def leave(event):                     # Leave事件处理程序
    x.set("Mouse out of Exit function button")
def myExit(event):
    print("Program exit cxq")
    root.destroy()

root = Tk()
root.title("apidemos.com")                  # 窗口标题    
root.geometry("900x540")
# btn = Button(root,text="Exit",command=root.destroy)
btn = Button(root,text="Exit")  
btn.bind("<Button-1>",myExit)
btn.pack(pady=30)
btn.bind("<Enter>",enter)     # 进入绑定enter
btn.bind("<Leave>",leave)     # 离开绑定leave

x = StringVar()
x.set("Initial state...")
lab = Label(root,textvariable=x,
            bg="yellow",fg="blue",
            height=4,width=50,
            font="Times 12 bold")  # 建立标签
lab.pack(pady=30) 

root.mainloop()

输出:

Tkinter 鼠标绑定的基本应用

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程