使用类混淆Tkinter代码:需要澄清

时间:2018-08-06 16:02:02

标签: python python-3.x class oop tkinter

我正在看Sentdex的Tkinter教程系列,我和其他人一样感到困惑。

能否请您解释以下代码?
在类和frame.\__init__之后的括号中,跟随着Frame所在的部分,以及self.pack的工作方式而未指定要打包的内容。
我只需要对它的所有班级部分进行清楚的解释(仅限班级,因为我已经有了计算器,因为我确实知道很多Tkinter)。

from tkinter import *

class Window(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master, bg='LightBlue')

        self.master = master

        self.init_window()

    def init_window(self):
        self.master.title("GUI")
        self.master.geometry('400x400')

        self.pack(fill=BOTH, expand=1)

        quitButton = Button(self, text='Quit')
        quitButton.place(x=0, y=0)


root = Tk()

app = Window(root)

root.mainloop()     

谢谢!

2 个答案:

答案 0 :(得分:2)

Frame放在方括号中,以便Window类可以继承tkinter.Frame类的方法。 Frame。 init 函数将类初始化为tkinter Frame。 self.pack()行将Frame打包成self.master,此文件是在之前几行创建的。

看看一些基本的类并从那里开始构建。

我前一阵子做了本教程,发现我不得不花一些时间先看一下课程。我用了一些YouTube视频,祝您好运!

答案 1 :(得分:2)

xsl:mode继承自class Window,这就是tk.Frame之后(Frame)的意思。
在这种情况下,Window也是Window,因此在tk.Frame上调用pack()时,它实际上是在打包自身。

避免进口星星可能会减少混乱:

self