zoukankan      html  css  js  c++  java
  • Tkinter 鼠标键盘事件(一)

    一: 鼠标事件

    <Button-1>                                                                     鼠标左键单击

    <Button-2>                                                                     鼠标中键单击

    <Button-3>                                                                     鼠标右键单击

    <1> = <Button-1> =<ButtonPress-1>

    <2> = <Button-2> = <ButtonPress-2>

    <3> = <Button-3> =<ButtonPress-3>

    <B1-Motion>                                                                鼠标左键拖动

    <B2-Motion>                                                                鼠标中键拖动

    <B3-Motion>                                                                鼠标右键拖动

    <ButtonRelease-1>                                                    鼠标左键释放

    <ButtonRelease-2>                                                    鼠标中键释放

    <ButtonRelease-3>                                                    鼠标右键释放

    <Double-Button-1>                                                    鼠标左键双击

    <Double-Button-2>                                                    鼠标中键双击

    <Double-Button-3>                                                    鼠标右键双击

    <Enter>                                                                        鼠标指针进入控件

    <Leave>                                                                      鼠标指针离开控件

    二:键盘事件

    <Return>                                                                      回车

    <Cancel>                                                                     Break键

    <BackSpace>                                                             BackSpace键

    <Tab>                                                                          Tab键

    <Shift_L>                                                                     Shift键

    <Alt_L>                                                                        Alt键

    <Control_L>                                                               Control键

    <Pause>                                                                     Pause键

    <Caps_Lock>                                                           Caps_Lock键

    <Escape>                                                                   Escapel键

    <Prior>                                                                        PageUp键

    <Next>                                                                        PageDown键

    <End>                                                                         End键

    <Home>                                                                      Home键

    <Left>                                                                          左箭头

    <Up>                                                                           上箭头

    <Right>                                                                      右箭头

    <Down>                                                                    下箭头

    <Print>                                                                       Print Screen键

    <Insert>                                                                      Insert键

    <Delete>                                                                   Delete键

    <F1>                                                                           F1键

    .                                                                                     .

    .                                                                                     .

    <F12>                                                                         F12键

    <Num_Lock>                                                            Num_Lock键

    <Scroll_Lock>                                                         Scroll_Lock键

    <key>                                                                        任意键

    三: 可打印的字符:

    a                                                                                  字母a

    b                                                                                  字母b

    1                                                                                  数字1

    <KeyPress-a>

    <KeyRelease-a>

    A                                                                                 shift+a

    B                                                                                 shift+b

    四: 组合键:

    <Shift-Up>                                                                Shift+Up

    <Alt-Up>                                                                    Alt+Up

    <Control-Up>                                                           Ctrl+Up

    <Control-A>                                                             Ctrl+shift+a

    五:窗体事件:

    <Configure>                                                           改变大小或位置

    <Visibility>                                                             当组件变为可视状态时触发

    <Unmap>                                                               当组件由显示状态变为隐藏状态时触发

    <Map>                                                                    当组件由隐藏状态变为显示状态时触发

    <Expose>                                                              当组件从原本被其他组件遮盖的状态中暴漏出来时触发

    <FocusIn>                                                             组件获得焦点时触发

    <FocusOut>                                                          组件失去焦点时触发

    <Circulate>                                                           当窗体由于系统协议要求在堆栈中置顶或压底时触发

    <Colormap>                                                         当窗体的颜色或外貌改变时触发,Tk中忽略此细则

    <Property>                                                           当窗体的属性被删除或改变时触发,属于TK的核心

    <Destroy>                                                            当组件被销毁时触发

    <Activate>                                                            与组件选项中的state项有关,表示组件由不可用变为可用时触发

    <Deactiavte>                                                       与组件选项中的state项有关,表示组件由可用变为不可用时候触发

    六: Event

    widget                                                                  事件被触发的控件

    x, y                                                                        鼠标距离窗体左上角的位置(坐标)

    x_root, x_y                                                          鼠标距离屏幕左上角的位置(坐标)

    char                                                                      键盘事件对应的字符代码

    keysym                                                                 键盘事件对应的字符串

    keycode                                                               键盘事件对应的按键码

    num                                                                      鼠标事件对应的按键码

    width, height                                                       控件的新大小

    type                                                                      事件类型

     列子

    # encoding: utf-8
    
    from Tkinter import *
    
    class MouseKeyEventDemo:
        def __init__(self):
            # 窗口和标题
            window = Tk()
            window.title("鼠标键盘事件")
    
            # 打包一个白色画布到窗口
            canvas = Canvas(window, width=200, height=200, bg="white")
            canvas.focus_set()  # 让画布获得焦点,对于键盘
            canvas.pack()
    
            # 绑定鼠标左键事件,交由processMouseEvent函数去处理,事件对象会作为参数传递给该函数
            canvas.bind(sequence="<Button-1>", func=self.processMouseEvent)
    
            # 绑定鼠标键盘事件,交由processKeyboardEvent函数去处理,事件对象会作为参数传递给该函数
            canvas.bind(sequence="<Key>", func=self.processKeyboardEvent)
    
            # 消息循环
            window.mainloop()
    
        # 处理鼠标事件,me为控件传递过来的鼠标事件对象
        def processMouseEvent(self, me):
            print("me=", type(me))  # me= <class>
    
            print("位于屏幕", me.x_root, me.y_root)
            print("位于窗口", me.x, me.y)
            print("位于窗口", me.num)
    
        # 处理鼠标事件,ke为控件传递过来的键盘事件对象
        def processKeyboardEvent(self, ke):
            print("ke.keysym", ke.keysym)  # 按键别名
            print("ke.char", ke.char)  # 按键对应的字符
            print("ke.keycode", ke.keycode)  # 按键的唯一代码,用于判断按下的是哪个键</class></key></button-1>
    
    MouseKeyEventDemo()
    

      

    以上代码已在python2.7上运行成功

  • 相关阅读:
    获取网络上的北京时间,如果大于设定的过期时间就...
    MYSQL注释
    mysql的perror
    Spring + CXF(REST):webservice not found
    vim 学习笔记
    mysql存储过程controller的not found造成混乱的解决办法
    pt-query-digest 安装及使用
    MYSQL预处理传参不区分大小写解决办法
    解压版mysql安装--windows系统
    sql plus 和 pl/sql无法连接远程oracle数据库
  • 原文地址:https://www.cnblogs.com/anita-harbour/p/9449757.html
Copyright © 2011-2022 走看看