Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 14, 2021 11:55:36

Mihail@
Зарегистрирован: 2021-04-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Подменю в tkinter

Добрый день! Помогите разобраться с ситуацией.
Дело в том, что при добавлении второго подменю программа не запускается, почему?
Код рабочей программы, но стоит снять комментарии в 4-х местах, как перестает работать!

from tkinter import *


class Support:
def __init__(self):
root = Tk()
root.title(“ИАЦ: Техподдержка”)
root.geometry(“700x300+500+250”)

main_menu = Menu(root)
root.config(menu=main_menu)

file_menu = Menu(main_menu, tearoff=0)

#file_menu2 = Menu(file_menu, tearoff=0)
#file_menu2.add_command(label=“Ворд”)
#file_menu2.add_command(label=“Эксель”)

file_menu.add_command(label=“Открыть…”) #, menu=file_menu2)
file_menu.add_command(label=“Новый”)
file_menu.add_command(label=“Сохранить…”)
file_menu.add_command(label=“Выход”)

doc_menu = Menu(main_menu, tearoff=0)
octet_menu = Menu(main_menu, tearoff=0)
nast_menu = Menu(main_menu, tearoff=0)
serv_menu = Menu(main_menu, tearoff=0)

help_menu = Menu(main_menu, tearoff=0)

help_menu2 = Menu(help_menu, tearoff=0)
help_menu2.add_command(label=“Локальная справка”)
help_menu2.add_command(label=“На сайте”)

help_menu.add_cascade(label=“Помощь”, menu=help_menu2)
help_menu.add_command(label=“О программе”)

main_menu.add_cascade(label=“Техническая поддержка и обслуживание”, menu=file_menu)
main_menu.add_cascade(label=“Документы”, menu=doc_menu)
main_menu.add_cascade(label=“Отчеты”, menu=octet_menu)
main_menu.add_cascade(label=“Настройка”, menu=nast_menu)
main_menu.add_cascade(label=“Сервис”, menu=serv_menu)
main_menu.add_cascade(label=“Справка”, menu=help_menu)

root.mainloop()


support = Support()

Офлайн

#2 Апрель 14, 2021 16:31:20

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

Подменю в tkinter

Раскоментить все.
Заменить:
file_menu.add_command(label='Открыть…', menu=file_menu2)
на:
file_menu.add_cascade(label='Открыть…', menu=file_menu2)



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

Отредактировано PEHDOM (Апрель 14, 2021 16:31:38)

Офлайн

#3 Апрель 19, 2021 11:00:34

Mihail@
Зарегистрирован: 2021-04-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Подменю в tkinter

Спасибо, действительно помогло, видимо уже просто глаз замылился)
Но вот в продолжение, а почему подменю необходимо расписывать перед родительским меню?
Вопрос уже конечно не касающийся проблемы, но все же интересно.

Офлайн

#4 Апрель 19, 2021 12:15:23

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

Подменю в tkinter

Mihail@
а почему подменю необходимо расписывать перед родительским меню?
Пайто интерпретируемый ЯП, и код выполняется интерпретатором построчно. Если вы не создадите подменю перед добавлением его в меню то просто получите NameError: и не сможете его добавить.
“Расписать” его можно и позжее, главное чтобы на момент add_cascade() сам объект подменю, пускай и пустой, уже существовал.



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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version