我想创建一个tkinter下拉菜单的几个键盘快捷键,例如,'Ctrl + O'打开文件浏览器打开一个新文件。我可以得到一个键绑定成功地,self.master.bind('<Control_L>', func)
或self.master.bind('<O>', func)
但是当我试图把它们放在一起,我得到:tkinter键绑定错误
文件“C:\用户\凯利\应用程序数据\本地\程序\ Python的\ Python35-32 \ LIB \ tkinter__init__.py“,第1099行,绑定 return self._bind(('bind',self._w),sequence,func,add) 文件”C:\ Users \ kelly \ AppData \ Local \ Programs \ Python \ 。Python35-32 \ LIB \ tkinter__init __ PY”,线1054,在_bind self.tk.call(什么+(序列,CMD)) _tkinter.TclError:细节后多余的字符在结合
此代码生成我错误:
from tkinter import *
class Application():
def __init__(self, master=None):
'''Create a 'master' frame of 1 row x 1 column'''
self.master = master
button = Button(self.master, text = 'Button', command = self.test)
button.pack()
#This Binding works
self.master.bind('<Return>', self.test)
#this Binding produces Error
self.master.bind('<Control_L-o>', self.test)
def test(self, event = None):
print("Succesful Event")
root = Tk()
app = Application(master=root)
谢谢你,只有例子我能找到有它,我有它的方式,这完美的作品。 – Kelly
@凯利好的,奇怪。也许它在Python 2.x或作者刚刚犯了一个错字;我没有检查过。无论如何,不客气! – jDo
@Kelly:有关事件模式的明确参考,请参阅http://tcl.tk/man/tcl8.5/TkCmd/bind.htm#M5 –