У меня возникли трудности с одной конкретной c частью моего кода меню. Я использовал метод place () для более подробного c размещения кнопок и виджетов на главном экране.
Есть ли способ скрыть все кнопки главного меню и виджеты ярлыков? Кажется, что метод grid () имеет действительно интуитивно понятный способ скрыть большое количество виджетов с помощью grid_forget () или pack_forget (). Есть ли у place_forget () какие-либо вариативности, когда дело доходит до сокрытия чего-то большего, чем просто указанная c метка?
Пример кода:
### Menu navigation to Training page
def createTrainingPage(event):
event.widget.place_forget()
#######################
### Widget Creation ###
#######################
### Buttons
TrainingButton = Button(text="Training", foreground="blue", font="bold")
TrainingButton.place(relx=0.07, rely=0.31, anchor=W)
TrainingButton.bind('<Button-1>', createTrainingPage)
### I want the createTrainingPage() method to 'erase'
### the menu and create the next page. But it only erases the one
### widget the bind() function is attached to. Thoughts?
QuizzesButton = Button(text="Quizzes", foreground="blue", font="bold")
QuizzesButton.place(relx=0.07, rely=0.51, anchor=W)
TrainerButton = Button(text="Management", foreground="blue", font="bold")
TrainerButton.place(relx=0.038, rely=0.71, anchor=W)
### Labels
# Bell Bank img logo
LogoLabel = ttk.Label(image=renderedLogo)
LogoLabel.place(relx=0.025, rely=.1, anchor=W)
TrainingLabel = ttk.Label(prog, text="Training To-Do, Scheduling, etc.", foreground="blue", background="lightgray")
TrainingLabel.place(relx=0.3, rely=0.31, anchor=W)
QuizzesLabel = ttk.Label(prog, text="Quiz Scores, Performance, etc.", foreground="blue", background="lightgray")
QuizzesLabel.place(relx=0.3, rely=0.51, anchor=W)
TrainerLabel = ttk.Label(prog, text="Trainer Admin: Course, Roster and Training Mgmt", foreground="blue", background="lightgray")
TrainerLabel.place(relx=0.3, rely=0.71, anchor=W)