我想给一个窗口添加一个自定义标题,但遇到了问题。我知道我的代码不对,但当我运行它时,它会创建两个窗口,一个窗口只有标题tk,另一个窗口更大,显示“Simple Prog”。如何使tk窗口的标题为“Simple Prog”,而不是新的附加窗口。我不认为我应该有Tk()部分,因为当我在完整的代码中有Tk()部分时,会有一个错误
from tkinter import Tk, Button, Frame, Entry, END
class ABC(Frame):
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.parent = parent
self.pack()
ABC.make_widgets(self)
def make_widgets(self):
self.root = Tk()
self.root.title("Simple Prog")
如果不创建根窗口,Tkinter将在尝试创建任何其他小部件时为您创建一个根窗口。因此,在您的
__init__
中,由于在初始化帧时尚未创建根窗口,Tkinter将为您创建一个根窗口。然后,调用make_widgets
,创建一个第二个根窗口。这就是你看到两扇窗户的原因。编写良好的Tkinter程序应该在创建任何其他小部件之前,始终显式地创建一个根窗口。
当您修改代码以显式创建根窗口时,您将得到一个具有预期标题的窗口。
示例:
还要注意使用
self.make_widgets()
,而不是ABC.make_widgets(self)
。虽然两者最终都做了相同的事情,但前者是调用函数的正确方法。尝试以下方法:
现在您应该有一个带有标题的框架,然后您可以为 如果你喜欢,可以用不同的小部件。
我不确定我说的对不对,但这是你想要的吗?
根目录是您创建的窗口,其余的都很简单。
相关问题 更多 >
编程相关推荐