zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    centos7/RHEL7安装LibreOffice
    CentOS7开机启动管理systemd简介及使用
    Vim使用技巧
    16_用LVM扩展xfs文件系统(当分区空间不够时)
    15_RHEL7挂载NTFS分区
    14_RHEL7安装mplayer
    polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
    关于vue,webpack 中 “exports is not defined”报错
    2018 vue前端面试题
    Error: No PostCSS Config found in... 报错 踩坑记
  • 原文地址:https://www.cnblogs.com/noah0532/p/10887015.html
Copyright © 2011-2022 走看看