tkinter--鼠标实践



# 鼠标事件
# Tkinter支持的鼠标事件如下所列。
#
# <Button-1> - 左键单击
# <Button-2> - 中键单击
# <Button-3> - 右键单击
# <Button-1> - 左键单击
# <B1-Motion> - 左键拖动
# <B2-Motion> - 中键拖动
# <B3-Motion> - 右键拖动
# <ButtonRelease-1> - 左键释放
# <ButtonRelease-2> - 中键释放
# <ButtonRelease-3> - 右键释放
# <Double-Button-1> - 左键双击
# <Double-Button-2> - 中键双击
# <Double-Button-3> - 右键双击
# <Motion> - 移动
# <MouseWheel> - 滚轮
# <Enter> - 进入控件
# <Leave> - 离开控件

# 面向对象使用Tkinter

from tkinter import *


class MyApp(Tk):
    """继承Tk,创建自己的桌面应用程序类"""

    def __init__(self):
        """构造函数"""

        super().__init__()

        self.title('鼠标事件演示程序')
        self.geometry('480x200')
        self.iconbitmap('s1.ico')

        self.info = StringVar()
        self.info.set('')

        label = Label(self, textvariable=self.info, font=("仿宋", 18))
        label.pack(side='top', expand='yes', fill='both')

        btn = Button(self, text='确定', bg='#C0C0C0')
        btn.pack(side='top', fill='x', padx=5, pady=5)

        label.bind('<Enter>', self.on_mouse)
        label.bind('<Leave>', self.on_mouse)
        label.bind('<Motion>', self.on_mouse)
        label.bind('<MouseWheel>', self.on_mouse)
        btn.bind('<Button-1>', self.on_mouse)
        btn.bind('<Button-2>', self.on_mouse)
        btn.bind('<Button-3>', self.on_mouse)
        btn.bind('<B1-Motion>', self.on_mouse)
        btn.bind('<Double-Button-1>', self.on_mouse)
        btn.bind('<Double-Button-3>', self.on_mouse)

    def on_mouse(self, evt):
        """响应所有鼠标事件的函数"""

        if isinstance(evt.num, int):
            self.info.set('事件类型:%s\n键码:%d\n鼠标位置:(%d, %d)\n时间:%d' % (evt.type, evt.num, evt.x, evt.y, evt.time))
        else:
            self.info.set('事件类型:%s\n鼠标位置:(%d, %d)\n时间:%d' % (evt.type, evt.x, evt.y, evt.time))


if __name__ == '__main__':
    app = MyApp()
    app.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值