我创建了一个自定义的tkinter根窗口,带有自定义的标题栏和其他修改,作为一个类。该类保存在一个名为ModRoot的模块中。相关代码如下:
import tkinter as tk
class Rt(tk.Tk):
def __init__(self,winhght,winwdth,apptitle):
super().__init__()
# initialize instance variables
self.winhght = winhght
self.winwdth = winwdth
self.apptitle = apptitle
在主应用程序中,这个根窗口是用两行代码创建的,并添加了主循环。
import ModRoot
RootWindow = ModRoot.Rt(400,800,"App Title")
RootWindow.mainloop()
我有两个问题:
首先,这个根窗口工作得很好,但是,正如我过去所了解到的,有时使用特定方法会出现一些问题,这些问题不会立即显现出来。因此,第一个问题就是上面创建根窗口的方法是否可以接受和正确。
第二个问题与初始化实例变量(self。winhight = winhight等等)。奇怪的是,我发现,如果我注释掉这些行,类的工作原理和以前一样。然而,每个关于类的教程都指出这些变量必须初始化。如果是这样,为什么这个类要处理那些被注释掉的行呢?它们真的有必要吗?
所以第一个问题就是上面创建根窗口的方法是否可以接受和正确。
可以,可以接受。
然而,每个关于类的教程都指出这些变量必须初始化。如果是这样,为什么这个类要处理那些被注释掉的行呢?它们真的有必要吗?
我们不可能说。您在代码的其他地方使用self.winwdth
,self.winhght
和self.apptitle
吗?只有在以后需要时才需要初始化它们。