Как программно изменить ТЕКСТ Пункта Меню Tkinter?
Всем самого наилучшего! Помогите, пожалуйста, в одном вопросе. Мне нужно, чтобы после очередного нажатия на Пункт Меню, текст этого Пункта Меню - ИЗМЕНЯЛСЯ. Все прекрасно видно из маленького примера:
from tkinter import *
class MainWindow: # Класс - Главного-Окна
# (Основное Окно Игры)
window = Tk()
window.geometry("+550+300") # ("250x150+300+300")
window.resizable(False, False) # Изменение размера окна
# (Для Пункта Меню - Открыть/Закрыть)
MENU_POINT_TEXT = 'Открыть'
MENU_POINT_FLAG = False
def start(self): # вывод - Главного-Окна Игры
self.init_ui() # создание - Главного-Окна Игры
# (Главный-Цикл Игры)
MainWindow.window.mainloop()
def init_ui(self): # создание - Главного-Окна Игры
# (Меню)
menubar = Menu(self.window)
self.window.config(menu=menubar)
# (Пункты Меню)
settings_menu = Menu(menubar, tearoff=0)
settings_menu.add_command(label=MainWindow.MENU_POINT_TEXT, font='Arial 8 bold', command=self.open_close)
# (Выход)
settings_menu.add_separator()
settings_menu.add_command(label='Выход', font='Arial 8 bold', command=self.window.destroy)
menubar.add_cascade(label='Файл', menu=settings_menu)
@classmethod
def open_close(cls):
if not cls.MENU_POINT_FLAG:
# (Открытие)
cls.MENU_POINT_FLAG = True
cls.MENU_POINT_TEXT = 'Закрыть' # (НЕ РАБОТАЕТ !!!)
print('*** ОТКРЫЛИ ! ***') # .....
else:
# (Закрытие)
cls.MENU_POINT_FLAG = False
cls.MENU_POINT_TEXT = 'Открыть' # (НЕ РАБОТАЕТ !!!)
print('*** ЗАКРЫЛИ ! ***') # .....
if __name__ == '__main__':
game = MainWindow()
game.start() # вывод - Окна Игры
Заранее всем спасибо!
Источник: Stack Overflow на русском