Создание Keybind с использованием Tkinter - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать связку клавиш с помощью кнопки.

def LoginSQLEvent(event):
    print("In Keybinded Function")
    LoginSQL()

def LoginSQL():
    ...

LoginButton = tk.Button(Login, command=LoginSQL, text="Login", font=ButtonFont, bg=ScoutPurple, fg="white")
LoginButton.grid(row=4, column=3)
LoginButton.bind('<Return>',LoginSQLEvent)

Ожидаемые результаты: функция входа в систему выполняется при нажатии клавиши возврата / ввода. Фактические результаты: функция входа не выполняется, при возврате код ошибки не выдается/ Нажмите клавишу ввода

1 Ответ

0 голосов
/ 01 февраля 2019

Чтобы получить как кнопку, так и клавишу Enter / Return для вызова функции, мы можем изменить 2 вещи в вашем коде.

Сначала измените event на event=None.Изменяя аргумент, который будет определен по умолчанию как None, вы можете вызывать эту функцию, если не передан аргумент.

Затем измените привязку, чтобы она была на контейнере кнопки.Окно входа в этом случае.(Для ясности фокус должен находиться в том же контейнере, что и кнопка для привязки для работы с контейнером, который не является корневым окном)

import tkinter as tk


Login = tk.Tk()

def LoginSQL(event=None):
    print("Testing")

LoginButton = tk.Button(Login, command=LoginSQL, font=ButtonFont,
                        bg=ScoutPurple, text="Login", fg="white")
LoginButton.grid(row=4, column=3)

Login.bind('<Return>', LoginSQL)

Login.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...