如何获取另一个 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")