如何获取另一个 Toplevel 的 Toplevel window 的名称?
How get name of Toplevel window of another Toplevel?
import tkinter as tk
r = tk.Tk()
r.title("root")
r.geometry("200x200")
f =tk.Frame(r)
f.pack()
top1 = tk.Toplevel(f)
top1.title("A")
#some widgets inside top2
top2 = tk.Toplevel(top1)
top2.title("B")
print(top1.winfo_toplevel(), top1.winfo_children())
r.mainloop()
我只想获得 top1
的顶层,没有别的,即 .!frame.!toplevel.!toplevel
winfo_toplevel()
returns .!frame.!toplevel
winfo_children()
returns .!frame.!toplevel.!toplevel
, ...全部children
你的问题有点不清楚,但我认为你问的是如何只给定top1
.[=18得到top2
=]
没有直接的方法可以做到这一点。您可以获得 top1
的所有 children,然后 return 任何 children 是 Toplevel
小部件。如果您知道 top1
只有一个 child 即 Toplevel
,那么您可以 return 第一个 child 即 Toplevel
.
def get_toplevel(w):
for child in w.winfo_children():
if child.winfo_class() == "Toplevel":
return child
raise Exception("No toplevel window was found")
import tkinter as tk
r = tk.Tk()
r.title("root")
r.geometry("200x200")
f =tk.Frame(r)
f.pack()
top1 = tk.Toplevel(f)
top1.title("A")
#some widgets inside top2
top2 = tk.Toplevel(top1)
top2.title("B")
print(top1.winfo_toplevel(), top1.winfo_children())
r.mainloop()
我只想获得 top1
的顶层,没有别的,即 .!frame.!toplevel.!toplevel
winfo_toplevel()
returns .!frame.!toplevel
winfo_children()
returns .!frame.!toplevel.!toplevel
, ...全部children
你的问题有点不清楚,但我认为你问的是如何只给定top1
.[=18得到top2
=]
没有直接的方法可以做到这一点。您可以获得 top1
的所有 children,然后 return 任何 children 是 Toplevel
小部件。如果您知道 top1
只有一个 child 即 Toplevel
,那么您可以 return 第一个 child 即 Toplevel
.
def get_toplevel(w):
for child in w.winfo_children():
if child.winfo_class() == "Toplevel":
return child
raise Exception("No toplevel window was found")