从Tkinter导入所有内容后,您必须创建一个基本的空白窗口,以及该代码的用途,但每行的含义是什么?
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.master = master
答案 0 :(得分:0)
main.py
class Window(Frame):
def __init__(self, master=None): # initialization: default for master is None
Frame.__init__(self, master) # Call the parent (Frame) init method
self.master = master # set the attribute master to self ('gui')
gui = Window(master=something) # creates object
master
是您创建对象时的参数。
答案 1 :(得分:0)
class Window(Frame):
上面的代码创建了一个新类。这个新类继承自Frame
类,因此可以在任何可以使用普通Frame
的地方使用。
def __init__(self, master=None):
这是新类的初始化程序的开始。初始化器在许多方面与其他语言称为构造函数的方式类似,尽管它在技术上不是构造函数。普通Frame
可以使用许多参数,但是这个子类需要两个。 self
是任何python类的必需参数,并在您调用对象上的方法时自动传入。 master
表示父级,除根窗口外,所有Tkinter小部件都需要父级。
奇怪的是,master
的默认值为None
。由于父窗口小部件不能是None
,因此非常容易引起误解。如果将其设置为None
,它将自动设置为根窗口。在创建此Window
类的新实例时,应始终传入对父窗口的引用。
Frame.__init__(self, master)
上面通过调用超类的初始化器完成了从Frame
类继承的过程。这是实际创建您在屏幕上看到的小部件。如果没有此步骤,则不会创建任何小部件。
self.master = master
以上语句只是将master
参数保存为类属性。