如你所知这是我的计算器程序。我希望用户不仅能够用鼠标点击按钮,而且还能使用键盘。所以我使用了.bind(),它们都工作得很好,除了使用shift键的5个绑定,只有前两个(shift-=和shift-8)工作,而且我没有看到其他三个(shift-6、shift-5和shift-1)不工作的原因。每次我单击Shift-1、SHift-5或Shift-6时,它实际上什么也不做。
顺便说一句,如果您无法在上面找到绑定,下面是包含绑定的代码的部分:
# ---------------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('!'))发布于 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。
import tkinter as tk
def test(event):
print('keysym:', event.keysym)
root = tk.Tk()
root.bind('<Key>', test)
root.mainloop()您可以在像Tcl/Tk - keysym或Tkinter8.5引用:Python的GUI : 54.5。键名这样的页面上找到一些名称。
https://stackoverflow.com/questions/40949940
复制相似问题