我正在尝试为我的程序创建快捷方式。

我可以一次将1个或2个键绑定到一个事件,例如

self.rootwindow.bind("<Control-s>", lambda event: self.savefile())


但例如,我似乎无法对3个键执行相同的操作

self.rootwindow.bind("<Control-Shift_L-s>", lambda event: self.savefileas())


有什么办法可以使其工作吗?还是有办法做到这一点,以便我可以将3个键绑定到这样的事件?

最佳答案

对于Tkinter,Control-R表示Ctrl-Shift-RControl-r表示Ctrl-R。因此,请确保您没有混用大写和小写字母。

也许您应该尝试Control-S

import sys
from Tkinter import Button, Frame, Tk    # Python 2

class MyClass:
    def __init__(self, master):
       frame = Frame(master)
       frame.pack()

       self.button = Button(frame, text="Hello", command=self.func)
       self.button.pack(side='left')

       master.bind('<Control-s>', self.save)
       master.bind('<Control-S>', self.exit)


    def save(self, _event=None):
        print("save the file")

    def exit(self, _event=None):
        print("exit")
        sys.exit()

root = Tk()
abc = MyClass(root)
root.mainloop()

关于python - 如何一次将3个键绑定(bind)到一个事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53904796/

10-16 03:16