首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.bind()不适用于shift键绑定?

.bind()不适用于shift键绑定?
EN

Stack Overflow用户
提问于 2016-12-03 16:29:12
回答 1查看 3.2K关注 0票数 1

如你所知这是我的计算器程序。我希望用户不仅能够用鼠标点击按钮,而且还能使用键盘。所以我使用了.bind(),它们都工作得很好,除了使用shift键的5个绑定,只有前两个(shift-=和shift-8)工作,而且我没有看到其他三个(shift-6、shift-5和shift-1)不工作的原因。每次我单击Shift-1、SHift-5或Shift-6时,它实际上什么也不做。

顺便说一句,如果您无法在上面找到绑定,下面是包含绑定的代码的部分:

代码语言:javascript
复制
# ---------------Key Bindings---------------

        root.bind('<Delete>', self.button_clear_press)

        root.bind('<Escape>', self.button_off_press)

        root.bind('`', self.chargeInvert)

        root.bind('=', self.equals)

        root.bind('.', self.decimal)

        root.bind('9', lambda x: self.numButton_press('9'))

        root.bind('8', lambda x: self.numButton_press('8'))

        root.bind('7', lambda x: self.numButton_press('7'))

        root.bind('6', lambda x: self.numButton_press('6'))

        root.bind('5', lambda x: self.numButton_press('5'))

        root.bind('4', lambda x: self.numButton_press('4'))

        root.bind('3', lambda x: self.numButton_press('3'))

        root.bind('2', lambda x: self.numButton_press('2'))

        root.bind('1', lambda x: self.numButton_press('1'))

        root.bind('0', lambda x: self.numButton_press('0'))

        root.bind('+', lambda x: self.mathButton_press('+'))

        root.bind('<Shift-=>', lambda x: self.mathButton_press('+'))

        root.bind('-', lambda x: self.mathButton_press('-'))

        root.bind('*', lambda x: self.mathButton_press('×'))

        root.bind('<Shift-8>', lambda x: self.mathButton_press('×'))

        root.bind('/', lambda x: self.mathButton_press('÷'))

        root.bind('<Shift-6>', lambda x: self.mathButton_press('^'))

        root.bind('<Shift-5>', lambda x: self.mathButton_press('%'))

        root.bind('<Shift-1>', lambda x: self.mathButton_press('!'))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 19:09:45

<1>的意思是mouse left button<Shift-1>的意思是Shift + mouse left button

有些密钥有特殊的名称-- keysym --您必须在代码中使用这些名称。

即。

  • Shift + 1<exclam>
  • Shift + Keypad 1<KP_End> (但它依赖于Num Lock)

当您按下键时,可以使用此代码查看keysym

代码语言:javascript
复制
import tkinter as tk

def test(event):
    print('keysym:', event.keysym)

root = tk.Tk()

root.bind('<Key>', test)

root.mainloop()

您可以在像Tcl/Tk - keysymTkinter8.5引用:Python的GUI : 54.5。键名这样的页面上找到一些名称。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40949940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档