Я пытаюсь очистить свой код Tkinter, поместив его в классы, но не могу вызвать конкретный экран. Когда я использовал только функции, я везде использовал Something.place_forget()
, чтобы перейти на следующую страницу. Все мои виджеты были определены в глобальной области видимости, поэтому это было необходимо, однако я ожидал, что смогу вызывать методы из класса, в котором я определил свои виджеты в их соответствующей локальной области.
tkinter imports[...]
from functools import partial
gui = Tk()
gui.geometry("700x700")
pagenumber = 1
class Input:
def __init__(self, screen):
self.screen = screen
def checkPage(self, page):
global pagenumber
pagenumber = page
print(pagenumber)
def mainscreen(self):
global pagenumber
button_input = Button(self.screen, text="Input", padx="50", pady="25", bg="lightgrey",
command=partial(self.checkPage, 2))
[...]
button_input.place(x="400", y="350")
def infoPage(self):
title_enter = Label(self.screen, text="Enter")
[...]
submit.place(x="290", y="420")
def ingredientsPage(self):
pass
inputscreen = Input(gui)
if pagenumber == 1:
inputscreen.mainscreen()
elif pagenumber == 2:
print("reached")
inputscreen.infoPage()
gui.mainloop()
Что я пытается сделать, это проверить номер страницы (который обновляется внутри класса) и использовать его, чтобы отобразить соответствующую страницу. Хотя pagenumber
отлично обновляется, он не отображает экран, который должен был отображаться.