Я пытаюсь закодировать программу с обычным файловым меню. (например, «Файл», «Редактировать», «Просмотреть» и т. д.).
Я хочу, чтобы действие, которое они выполняют в этом меню, обновляло мою строку состояния (метку).
Проблема в том, как я это настроил сейчас, я считаю, что он выполняет команду, а затем пытается получить результат как то, что он должен делать.
В настоящее время пункт меню определяется так:
fileMenu.add_command(label="Insert", command=self.statusUpdater(statusLabel,"Insert Triggered")
И функция statusUpdater определяется как таковая:
def statusUpdater(self,status,commandName):
status.config(text=commandName)
status.update_idletasks()
Итак, проблема в том, что прямо при запуске программы статус меняется на «Вставка сработала». Я хочу, чтобы это было счастливо только после того, как я действительно нажал «Вставить».
Из подсказок, которые я видел в другом месте, кажется, что мне нужен какой-то способ передать и обработать событие нажатия Insert.
Может ли кто-нибудь предоставить общую и базовую функцию, которая делает то, что я прошу? Я думаю, что проблема заключается в (), прикрепленном к функции команды, но я не знаю другого способа передачи аргументов.
Все, что мне нужно, это функция, которая вызывается при событии щелчка и знает, какая команда fileMenu ее вызвала.
Спасибо!