tkinter如何绑定鼠标和键盘等事件

这篇具有很好参考价值的文章主要介绍了tkinter如何绑定鼠标和键盘等事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Tkinter系列:

  • GUI初步💎布局💎绑定变量💎绑定事件💎消息框
  • 扫雷小游戏💎强行表白神器

控件和人通过事件来交互,Tkinter中则通过Bind来绑定事件。例如

import tkinter as tk

root = tk.Tk()
txt = tk.StringVar()
btn = tk.Button(root, textvariable=txt, width=30, height=5)
btn.pack()

btn.bind("<Button-1>", lambda evt: txt.set("我被左键点了"))
btn.bind("<Button-3>", lambda evt: txt.set("我被右键点了"))
root.mainloop()

效果如下

tkinter如何绑定鼠标和键盘等事件
其中,bind用于绑定事件,第一个参数<Button-1>在鼠标左键点击时触发,后面的lambda表达式为触发后的函数,txt.set()用于设置StringVar的字符串。

鼠标点击事件

tkinter中,提供了四种鼠标点击动作,分别表示单击、双击、点击时移动以及松开鼠标,如下表所示。

标志 动作 备注
鼠标单击事件 可用数字1-5
双击鼠标 可用数字1-3
鼠标移动 可用数字1-3
松开鼠标 可用数字1-3

下面具体解释备注栏种所谓的可用数字。

每个动作针对左键、中键(滚轮)和右键提供了不同的动作,左键、中键和右键分别对应1,2,3,以左键为例,其动作分别如下

标志 动作 备注
<Button-1> 单击鼠标左键
<Double-Button-1> 双击鼠标左键
<B1-Motion> 移动鼠标左键
<ButtonRelease-1> 松开鼠标鼠标

此外,<Button-4>表示滚轮上滑,<Button-5>表示滚轮下滑。

进入或离开控件

当鼠标进入某个控件时,会触发动作Enter;离开这个控件时会触发<Leave>

当键盘的光标进入某个控件时,会触发<FocusIn>;当键盘光标离开某个控件时,会触发<FocusOut>

键盘事件

键盘事件的统一标记是<Key>,示例如下

import tkinter as tk
root = tk.Tk()
txt = tk.StringVar()
txt.set("按键盘")
lbl = tk.Label(root, textvariable=txt, width=30, height=5)
lbl.focus_set()
lbl.pack()

def keyBack(evt):
    msg = f"您点击了{evt.char}, ASCII代码{evt.keycode}\n"
    msg += f"按键名称{evt.keysym}, 代码{evt.keysym_num}"
    txt.set(msg)

lbl.bind("<Key>", keyBack)
root.mainloop()

效果为

tkinter如何绑定鼠标和键盘等事件

通过keycodekeysym_num的区别,可以更加精确地捕捉键盘事件。

如果想设置快捷键,则可直接在<>中括上想要捕捉的按键,如果为多个按键,不同按键之间通过-连接,例如<Ctrl-C>表示按下Ctrl+C时触发事件。

除了常规的字母按键之外,还有几个特殊按键,如下表所示

代码 说明
<Shift_L> 左shift键
<Shift_R> 右shift键
<F2> F2键,Fxx以此类推
<Return> 回车
<BackSpace> 退格删除键

Configure事件

<Configure>事件将在窗口或控件尺寸、位置发生变化时触发,

import tkinter as tk
def testCall(evt):
    print("窗口变了")

root = tk.Tk()
root.geometry('400x300+450+300')
root.bind('<Configure>', testCall)
root.mainloop()

效果为

tkinter如何绑定鼠标和键盘等事件文章来源地址https://www.toymoban.com/news/detail-501928.html

到了这里,关于tkinter如何绑定鼠标和键盘等事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • canvas绑定键盘事件不会生效 + 解决办法

    目录 canvas绑定键盘事件不会生效 解决办法 1.如果canvas元素和windows长宽基本一致,可以通过在windows对象上绑定键盘事件来代替对canvas元素的监听与处理。 2.让canvas元素处于聚焦状态,并给它绑定键盘事件。 写贪吃蛇游戏时遇到一个问题:想的是给canvas绑定键盘事件,从而操

    2024年02月09日
    浏览(61)
  • Qt 事件 < 二 >鼠标键盘事件

    Qt 是一个流行的 C++ 框架,用于构建跨平台的图形用户界面应用程序。在 Qt 中,处理键盘事件和鼠标事件是常见的任务,因为用户输入在交互式应用程序中至关重要。下面是关于 Qt 键盘事件和鼠标事件的学习总结: 键盘事件 (QKeyEvent)使用入门: 事件处理函数: 键盘事件通过

    2024年01月18日
    浏览(32)
  • JS 鼠标事件与键盘事件

    一、鼠标事件         onclick        鼠标点击左键触发         onmouseover    鼠标经过触发         onmouseout     鼠标离开触发         onfocus        获得鼠标焦点触发         onblur         失去鼠标焦点触发         onmousemove    鼠标移动出发    

    2024年02月09日
    浏览(32)
  • WPF中TextBox使用KeyBinding绑定命令,键盘事件

        最近在做一个扫码枪识别条形码的功能,TextBox文本按回车键或者是扫码枪识别条形码自动触发查询功能,由于架构采用的是MVVM的开发模式,所以,刚开始采用KeyBinding的方式绑定命令,然后实现该功能;代码如下: 对应的ViewModel中绑定命令事件,代码如下所示     初步

    2024年02月14日
    浏览(40)
  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(42)
  • Vue鼠标点击事件和键盘事件

    目录 Vue中的鼠标点击事件修饰符: vue的@click.prevent vue的@click.stop vue的@click.capture vue的@click.once vue的@click.self vue的@click.passive  vue的键盘相应事件 @keydown - 按下键盘上的任意一个键时触发的事件。 @keyup - 松开键盘上的任意一个键时触发的事件。 @keypress - 当按下字符键时触发的

    2024年02月06日
    浏览(79)
  • python 监听键盘事件和鼠标事件

    键盘监听: python有一个很强大的键盘监听库,那就是 keyboard 。他的父类库 pynput 可以实现鼠标监听 可以自行下载 pip install keyboard | pip install pynput 代码参考

    2024年02月13日
    浏览(32)
  • Vue的数据绑定 事件 键盘 ,以及创建项目改端口号

    一、Vue的数据绑定 1、单向数据绑定:将Model绑定到View上,当通过JavaScript代码改变了Model时,View就会自动刷新。不需要进行额外的DOM 操作就可以实现视图和模型的联动 ​ a、数据只保存一份 ​ b、data—-DOM ​ (1)插值表达式:{{ 表达式 }},将表达式的值在View中显示出来 ​

    2024年02月12日
    浏览(38)
  • vue键盘和鼠标事件

    1、键盘事件 2、组合按键 3、鼠标事件 可以下列方法判断按下鼠标哪个键

    2024年02月13日
    浏览(39)
  • Unity鼠标键盘事件

    GetMouseButton(0):按下鼠标左键不动,程序会一直运行,松开左键程序停止运行。 GetMouseButton(2):按下鼠标中键不动,程序会一直运行,松开中键程序停止运行。 GetMouseButton(1):按下鼠标右键不动,程序会一直运行,松开右键程序停止运行。 GetMouseButtonDown(0):按下鼠标左键时,程序运

    2023年04月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包