Как мне использовать tkinter для создания меню? - PullRequest
1 голос
/ 23 января 2020

Это мой первый пост, поэтому, если нужно, оставьте отзыв, чтобы улучшить его.

Я изучаю tkinter на tkdocs , чтобы изучить tkinter. Текущий урок пытается научить меня создавать меню, но всякий раз, когда я запускаю их сценарий, вместо меню, прикрепленного к окну root, появляется отдельное окно.

from tkinter import *
from tkinter import ttk


root = Tk()
root.option_add('*tearOff', FALSE)
win = Toplevel(root)
menubar = Menu(win)
win['menu'] = menubar

root.mainloop()

Это появляется как второе окно. Я не уверен, что я просто не понимаю материал, или я делаю что-то не так. Уроки написаны с учетом того, что вы используете как минимум python 3 и tkinter 8.6. У меня есть текущий дистрибутив Anaconda, и он отвечает обоим этим требованиям.

Что я делаю неправильно, чтобы этот код открывал отдельное окно, а не меню, прикрепленное к окну?

1 Ответ

0 голосов
/ 23 января 2020

Мне удалось выяснить проблему. Я неправильно прочитал учебник и ожидал, что откроется единственное окно с меню и парой вариантов в этом меню. После игры с кодом я смог написать скрипт, который создал окно, которое я изначально думал, что мы собираемся открыть. В конечном счете, я не осознавал, что «TopLevel» откроет отдельное окно, так что это было на мне. Ниже приведен код, который я использовал для открытия окна с меню.

from tkinter import *
from tkinter import ttk

root = Tk()
root.option_add('*tearOff', FALSE)


menubar = Menu(root)
menu_file = Menu(menubar)
menu_edit = Menu(menubar)
menubar.add_cascade(menu=menu_file, label='File')
menubar.add_cascade(menu=menu_edit, label='Edit')
root['menu'] = menubar

root.mainloop()

Спасибо, и я надеюсь, что это поможет кому-то еще понять, что происходит, если они также изучают tkinter.

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