飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1440|回复: 4

[Python] 敲击键盘按键然后显示按键名的程序

[复制链接]
  • TA的每日心情

    昨天 14:14
  • 签到天数: 295 天

    [LV.8]以坛为家I

    发表于 2023-1-1 17:26:40 | 显示全部楼层 |阅读模式
    效果图

    QQ截图20230101172503.png

    QQ截图20230101172518.png

    上面的图是在按下键盘左边的Alt键时 显示的内容 Alt_L表示键盘左边的Alt键 当按下键盘上面的按键时 会显示对应按键的按键名 (请在英文输入法的状态下使用)

    源代码
    [Python] 纯文本查看 复制代码
    # Tkinter event事件处理
    # 事件处理是GUI程序不可或缺的重要组成部分 相比来说 控件是组成一台机器的零部件 而事件处理则是驱动这台机器运转的关键所在
    # 事件处理是GUI程序的灵魂 我们将用户对软件的操作统称为事件处理 比方说鼠标点击 窗口输入文本 这些事件触发都有一个共同的特点 都是由用户直接或者间接触发的
    
    # 事件绑定方法
    # Tkinter的事件处理机制为控件的绑定提供了事件与事件函数(回调函数callback)语法如下
    # weiget.bind('<event>',func)
    # weiget意思是控件的实例对象 之后 用bind()方法为控件绑定事件类型与事件函数 bind()函数传入两个参数 第一个是字符串参数event 然后用尖括号包裹 func是事件处理函数
    
    # event事件对象
    # 当用户触发事件对象时 Tkinter会自动将事件对象交给函数处理
    
    from tkinter import *
    
    # 创建一个窗口
    window = Tk()
    
    # 设置窗口标题
    window.title("事件处理")
    # 设置窗口大小
    window.geometry('400x300+300+200')
    
    # 定义一个事件函数 必须用event参数
    def show_key(event):
        # keysym 按键名
        s = event.keysym
        # 在标签上显示按键名
        lb.config(text=s)
    
    # 创建一个Label控件
    lb = Label(width=10,background='black',text='按下任意键',font=('微软雅黑','18','bold'),fg='blue')
    lb.pack()
    
    # 对label标签控件用bind()方法 完成事件对象的绑定
    lb.bind('<Key>',show_key)
    
    lb.focus_set()
    # 显示窗口
    window.mainloop()
    
    # 上述代码使用 tkinter 库创建一个简单的GUI程序 该程序包含一个标签控件 当用户按下键盘上的任意键时 标签控件上会显示触发事件的按键
    # 具体来说 这个程序首先创建了一个窗口 然后创建了一个标签控件 lb 接着 该程序使用 bind() 方法绑定了一个事件处理函数 show_key 到 lb 按钮上 当用户按下任意键时
    # 就会触发事件处理函数的执行 在show_key函数内 使用 event.keysym 查看触发事件的按键 然后使用lb.config方法将其显示在按钮控件上 最后 调用 mainloop 方法显示窗口 

    学习思路及仿照来源  Tkinter Event事件处理     元旦快乐!祝坛友新年快乐,万事如意!




    PYG19周年生日快乐!
  • TA的每日心情
    难过
    前天 08:57
  • 签到天数: 527 天

    [LV.9]以坛为家II

    发表于 2023-1-2 16:48:44 | 显示全部楼层
    来看看事件处理方法
    PYG19周年生日快乐!
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情

    前天 09:30
  • 签到天数: 961 天

    [LV.10]以坛为家III

    发表于 2023-1-2 10:38:09 | 显示全部楼层
    谢谢分享Python源码……
    PYG19周年生日快乐!
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情

    昨天 14:14
  • 签到天数: 295 天

    [LV.8]以坛为家I

     楼主| 发表于 2023-1-2 12:26:49 | 显示全部楼层
    a583091790 发表于 2023-1-2 10:38
    谢谢分享Python源码……

    嘿嘿 不用谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 14:14
  • 签到天数: 295 天

    [LV.8]以坛为家I

     楼主| 发表于 2023-1-2 17:39:38 | 显示全部楼层
    乐活 发表于 2023-1-2 16:48
    来看看事件处理方法

    事件处理方法简单
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表