【问题标题】:Tkinter Binding "<Control-Key-n>" vs. "<Control-n>"Tkinter 绑定“<Control-Key-n>”与“<Control-n>”
【发布时间】:2021-03-22 13:07:07
【问题描述】:

我有一个问题:

在 tkinter 中绑定函数时,有很多方法可以做到。其中两种方式是:

# Method 1
root.bind('<Control-n>', ExampleFunction)

# Method 2
root.bind('<Control-Key-n>', ExampleFunction)

Control-n 和 Control-Key-n 有什么区别?

【问题讨论】:

  • 没什么,只是引用它的一种方式。 '&lt;Key-Up&gt;''&lt;Up&gt;' 相同。
  • 您有时必须使用较长的形式以避免歧义。例如,默认情况下,1..5 范围内的数字将被解释为按钮编号,您必须在其前面放置 Key- 以使其成为键盘事件。

标签: python python-3.x tkinter key-bindings


【解决方案1】:

功能上没有区别。

Control-Key-n 是一个事件说明符,由

组成
  1. 修饰符Control(事件发生时按住控制键。)
  2. 事件类型KeyKeyPress的缩写)
  3. 事件详细信息n(具体来说,按下了n 键)。

来自man n bind

如果给出了一个keysym detail,那么 type 字段可以省略;它将默认为 KeyPress。例如, 等价于

所以&lt;Control-n&gt; 只是&lt;Control-Key-n&gt; 的缩写形式(它本身是&lt;Control-KeyPress-n&gt; 的缩写形式):单独的n 等同于Key-n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2011-06-28
    • 2011-09-16
    • 2016-03-29
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多