как сохранить имя нажатой клавиши из события в переменные класса в Python - PullRequest
1 голос
/ 07 июня 2019

, поэтому я создаю приложение с python 3.7 (windows) и моделью tkinter, и я хотел управлять некоторыми опциями в моем приложении, используя ключевые события (когда пользователь нажимает определенную клавишу, происходит определенное действие)просто правильно!

, поэтому я попытался сделать это, используя класс, содержащий переменную и функцию обратного вызова

, и результат оказался не таким, как я ожидал,
я смог напечатать имя нажатой клавишинепосредственно внутри функции обратного вызова
НО !! я хотел именно, чтобы сохранил это имя ключа в variable, чтобы использовать его вне класса

что-то вроде:

class keySystem:

pressedKey = None

def callback(event):
    keySystem.pressedKey = repr(event.char)


myWindow.bind("<Key>", keySystem.callback )
print( "the user have Pressed : ", keySystem.pressedKey ) 

Цель: сохранить, какое имя клавиши было нажато из события в моей «переменной класса» (pressedKey) дляиспользуйте его вне класса


# пример использования:

if keySystem.pressedKey == "g":
    mySettings.open()
if keySystem.pressedKey == "Esc":
    mySettings.Exit()

1 Ответ

0 голосов
/ 07 июня 2019

Я не уверен, что это то, что вам нужно, но вам нужно определить его как переменную класса и вызвать его, используя объект класса. __init__ function помогает в этом случае и обязательно используйте ключевое слово self внутри каждой функции. Ниже приведу очень простой пример:

class keySystem:

    def __init__(self):
        pressedKey = None

    def callback(self, event):
        self.pressedKey = event


object=keySystem()
object.callback('Enter')
print( "pressed : ", object.pressedKey)

Вывод:

pressed :  Enter

У меня есть ощущение, что это не то, что вы искали. Дайте мне знать, если я неправильно истолковал это.

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