gpt4 book ai didi

python - 省略 Toplevel 的父参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:21 26 4
gpt4 key购买 nike

我正在查看 tkinter 的 Toplevel。从我所看到的effbot我可以省略它的父参数。

1-当我只使用 Toplevel 本身(注释掉 root)时,我相信它会创建自己的父窗口,因为会出现两个窗口,并且在单击按钮后只会销毁一个窗口。

2-如果我不注释掉Tk(),它就可以正常工作。两个窗口,一个根窗口 - 一个顶层并破坏顶层。

3-如果我交换 root 和 toplevel,第一个 toplevel 会再次创建两个(如第一种情况),然后 root 将创建另一个窗口,因此将出现三个窗口,并且只有 toplevel 被破坏。

import tkinter as tk

#root = tk.Tk()
top = tk.Toplevel()

#root.title("Foo")
top.title("Bar")
top.geometry("300x100")

tk.Button(top, text = "Destroy", command=top.destroy).pack()

top.mainloop()

问题是,有没有一种方法可以在 Tk() 之前创建顶层并仅获取一个窗口或访问其父窗口并销毁它?

附:我发现这两个问题Toplevel in Tkinter: Prevent Two Windows from Opening && tkinter child window opens two windows? 。第一个问题是第二种情况,这不是我想要的,第二个问题还没有答案,他的问题有点不可重现。

此外,我尝试获取其主值 - 手动销毁 - 像这样,但似乎该值未存储在存储选项的字典中。

btn = tk.Button(top, text = "Destroy", command=top.destroy)
btn.pack()

print (btn["text"])
>>> Destroy
print (btn["master"])
>>> _tkinter.TclError: unknown option "-master"

最佳答案

这并不是说 Toplevel 创建它自己的父窗口,如果您不先创建一个窗口小部件,任何小部件都会创建一个根窗口。在任何其他小部件可以存在之前,必须有一个根窗口 - 这就是它被称为窗口的原因。因此,要回答您的具体问题,不,如果不先创建根窗口,则无法创建 Toplevel 实例。

关于python - 省略 Toplevel 的父参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23867818/

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