Как привязать 3 ключа сразу к событию? - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь создать ярлыки для своей программы.

Я могу привязать 1 или 2 клавиши одновременно к событию, например

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

, но не могу показатьсясделать то же самое для 3 клавиш, скажем, например

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

Есть ли способ заставить его работать так?Или все-таки можно сделать так, чтобы я мог связать 3 ключа с таким событием?

1 Ответ

0 голосов
/ 23 декабря 2018

С Tkinter, Control-R означает Ctrl-Shift-R, а Control-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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...