如何将3个键同时绑定到一个事件?

2024-04-27 11:53:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

但我似乎不能对3个键做同样的事情,比如说

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

有什么办法让它像这样工作吗?或者有没有其他方法让我可以把3个键绑定到这样的事件上?你知道吗


Tags: lambdaself程序eventshiftbind事件事情
1条回答
网友
1楼 · 发布于 2024-04-27 11:53:23

对于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()

相关问题 更多 >