Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 28, 2017 11:07:16

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter, переименовать пункт Menu

Добрый день!
Подскажите пожалуйста, возможно ли переименовать пункт меню? Не нашел информацию по этому поводу.
Пробовал вот так:

 menu_object.entryconfigure(index, label='new title')
Выдает ошибку:
 _tkinter.TclError: unknown option "-label"

Офлайн

#2 Апрель 28, 2017 12:25:25

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Tkinter, переименовать пункт Menu

Более полный кусок кода хотелось-бы глянуть.

Офлайн

#3 Апрель 28, 2017 13:30:52

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter, переименовать пункт Menu

Создание меню:

 LOC = {'settings': 'Settings',
        'path': 'Path to LoL',
        'lang': 'Language'}
gm = tk.Menu(root)
root.config(menu=gm)
sm = tk.Menu(gm, tearoff=0)
gm.add_cascade(label=LOC['settings'], menu=sm)
sm.add_command(label=LOC['path'], command=bge.path)
sm.add_command(label='API key', command=bge.setAPI)
lm = tk.Menu(sm, tearoff=0)
sm.add_cascade(label=LOC['lang'], menu=lm)
lm.add_command(label='English', command=en_loc)
lm.add_command(label='Русский', command=ru_loc)

В ходе программы LOC изменяется и хотелось бы чтобы пункты меню сменили свое название по средствам функций en_loc и ru_loc.

Офлайн

#4 Май 2, 2017 20:33:47

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Tkinter, переименовать пункт Menu

You can use the postcommand callback to update (or even create) the menu every time it is displayed.
http://effbot.org/tkinterbook/menu.htm
както так:

 from tkinter import *
counter = 0
def update():
    global counter
    counter = counter + 1
    menu.entryconfig(0, label=str(counter))
root = Tk()
menubar = Menu(root)
menu = Menu(menubar, tearoff=0, postcommand=update)
menu.add_command(label=str(counter))
menu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="Test", menu=menu)
root.config(menu=menubar)
root.mainloop()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Май 2, 2017 20:34:03)

Офлайн

#5 Май 4, 2017 12:05:51

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter, переименовать пункт Menu

Благодарю!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version