Я делаю графический интерфейс с Tkinter и мне нужно знать, какой кадр находится сверху, чтобы один из пониженных не входил в один из своих циклов и изменял некоторые настройки.
Я уже пробовал с
self.tk.eval('frame stackorder '+str(self.frames["StartPage"])+' isabove '+str(self.frames["Wallpaper"]))=='1'
Я сам являюсь моим корнем (это класс) и получаю эту ошибку
_tkinter.TclError: bad window path name "stackorder"
также
self.tk.eval('wm stackorder '+str(self.frames["StartPage"])
дает мне эту ошибку:
_tkinter.TclError: window ".!frame.!startpage" isn't a top-level window
Это способ, которым я создаю и меняю между кадрами
self.frames = {}
for F in (StartPage, PageOne, PageTwo):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
# put all of the pages in the same location;
# the one on the top of the stacking order
# will be the one that is visible.
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
def show_frame(self, page_name):
'''Show a frame for the given page name'''
frame = self.frames[page_name]
frame.tkraise()
Я выбрал способ смены кадра отсюда ( Переключение между двумя кадрами в tkinter ) но не знаю, как узнать, кто из них на вершине.