我已经注意到,tk.Tk()和tk.Frame这两个指令构成了一个新窗口,那么它们之间有什么区别呢?使用其中一个比另一个有什么好处?
发布于 2019-12-27 21:42:09
--我注意到,tk.Tk()和tk.Frame这两个指令都创建了一个新窗口
那是不对的。tk.Frame不会创建一个新窗口,除非您还没有创建根窗口,任何小部件都会强制创建根窗口。
tkinter应用程序中的小部件存在于层次结构中,该层次结构必须有根窗口。根窗口是特殊的,因为它没有父窗口。所有其他小部件都必须有父部件。每个应用程序都必须有一个tk.Tk实例,除了非常罕见的情况之外,您永远不应该有一个以上的tk.Tk实例。
tk.Frame是一个框架:一个有边框的小部件,没有太多其他的。与所有其他小部件(tk.Tk除外)一样,它必须有一个父部件。
使用tk.Tk的优点是您的应用程序必须有它的实例。如果你不创造一个,一个就会为你创造。python的禅说显式比隐式更好,所以您应该始终显式地创建它。
使用tk.Frame的优点是,它可以轻松地将小部件收集到组中,并能够将其作为一个组进行管理(添加边框,将其划分为一个组,等等)。
https://stackoverflow.com/questions/59506238
复制相似问题