使用 Frame() class 创建框架

using the Frame() class to create frames

我对 tkinter 很陌生,我想知道我应该如何创建框架。 如果一个比另一个更受欢迎,为什么会这样?

这样比较好:

import tkinter as tk


class MainApplication(tk.Frame):

    def __init__(self, parent):

        main_frame = tk.Frame(parent)


root = tk.Tk()
main_app = MainApplication(root)
root.mainloop()

或者像这样:

import tkinter as tk


class MainApplication(tk.Frame):

    def __init__(self, parent):

        tk.Frame.__init__(self, parent)


root = tk.Tk()
main_app = MainApplication(root)
root.mainloop()

第一个创建两个帧——实例本身(main_app)是一个帧,它包含一个子帧(main_frame) .但是,因为您没有调用 Frame__init__,所以第一帧未正确构建。

如果您要立即创建一个内部框架并将所有内容放入其中,那么从 Frame 继承是没有意义的。

顺便说一下,您的代码不太行得通。如果您想真正看到应用程序小部件(及其子部件),那么您将需要在小部件上调用 packplacegrid

例如:

root = tk.Tk()
main_app = MainApplication(root)
main_app.pack(fill="both", expand=True)
root.mainloop()