Обновлять аргументы лямбда-функции при нажатии кнопки - PullRequest
0 голосов
/ 07 мая 2020

Я вырезал части кода, так как подозреваю, что ответ довольно новыйb ie :)

Я пытаюсь проверить ввод в Entry, нажав кнопку (которая ссылается на функция проверки). Однако переменная path_directory не обновляется (сохраняет начальное значение).

Как мне обновить его при нажатии кнопки?

directory = tk.Entry(entry_frame)

validate_button= tk.Button(paths_frame, text='Next', command=lambda path_directory=directory.get(): self.validate_path(path_directory)) 

def validate_path(self, path_directory):
        if path.exists(path_directory):
            print('# Path validation succuessful: ', path_directory)
        else: 
            print('# Path validation failed: ', path_directory)

1 Ответ

1 голос
/ 07 мая 2020

Проблема в том, что вы получаете значение только при lambda init. Просто используйте функцию, а не лямбду, например:

def validate_click():
    path_directory=directory.get()
    self.validate_path(path_directory)
validate_button= tk.Button(paths_frame, text='Next', command=validate_click)

Надеюсь, это поможет!

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