gpt4 book ai didi

python - 如何知道哪些框架位于顶部(又称 tkraise 之后)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:50 30 4
gpt4 key购买 nike

我正在使用 Tkinter 制作 GUI,需要知道哪个框架位于顶部,以便其中一个较低的框架不会进入其循环之一并更改一些设置。

我已经尝试过

self.tk.eval('frame stackorder '+str(self.frames["StartPage"])+' isabove '+str(self.frames["Wallpaper"]))=='1'

self 是我的根(它是一个类)并收到此错误

_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()

我采取了从这里更改框架的方法( Switch between two frames in tkinter ),但不知道如何知道哪一个在最上面。

最佳答案

您可能应该保留对可见框架的引用,以便可以访问它:

class App(tk.Tk()):
def __init__(self, ...):
...
self.visible_frame = "StartPage"
...

def show_frame(self, page_name):
'''Show a frame for the given page name'''
frame = self.frames[page_name]
frame.tkraise()
self.visible_frame = page_name

关于python - 如何知道哪些框架位于顶部(又称 tkraise 之后)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56613976/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com