gpt4 book ai didi

python - tkinter 的 Tk 和 Toplevel 类有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 17:31:59 26 4
gpt4 key购买 nike

在 Python 3 中,我从交互式 shell 运行以下命令:

>>> import tkinter
>>> type(tkinter.Tk())
<class 'tkinter.Tk'>
>>> type(tkinter.Toplevel())
<class 'tkinter.Toplevel'>

这两者都会创建单独的窗口。我假设 tkinter.Tk() 返回 tkinter 应用程序的“主”窗口,而任何其他窗口都应使用 tkinter.Toplevel() 创建。

我注意到如果您关闭 tkinter.Tk() 的窗口,两个窗口都会关闭。此外,如果您调用 tkinter.Toplevel() 而没有调用 tkinter.Tk(),则会创建两个窗口(其中一个是“主”窗口,关闭时,也将关闭 Toplevel 窗口)。

这是准确的吗?还有其他我应该关注的差异吗?

最佳答案

您的总结是准确的。 tkinter 的核心架构特征之一是小部件存在于具有一个根窗口的层次结构中。那个根窗口就是你在实例化 Tk 时得到的。

实例化 Tk 不仅仅是创建一个窗口,它还初始化了整个 tkinter 框架。它实际上启动了一个隐藏的 tcl 解释器,它执行管理小部件的实际工作。 Tkinter 只是这个解释器的 python 包装器。

如果您尝试在没有先显式创建根窗口的情况下创建其他一些小部件,则会自动创建一个,因为每个 tkinter 应用程序都必须只有一个根窗口。

关于python - tkinter 的 Tk 和 Toplevel 类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655219/

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