不明白为什么还有一个额外的窗口

时间:2019-02-24 16:28:39

标签: python oop tkinter

因此,我有两个tkinter的东西,一个使用class,另一个没有类。一切都应该一样,但是当我使用“类”时,它将创建两个窗口,一个是我实际创建的,另一个是我不知道它来自何处的窗口(可能是因为我同时使用了{{1} }和Frame,但没有类就无法正常工作。

tk.Tk

以上是没有课程的。 下面的一个是带有类的。

import tkinter as tk


window = tk.Tk()
framer = tk.Frame(window)
window.title("Test")
window.geometry("720x480+360+240")
window.mainloop()

2 个答案:

答案 0 :(得分:0)

您将获得两个窗口,因为您创建了两个窗口。

第一个窗口是apptyptolator的一个实例。此类是tk.Tk的子类,因此是{em> tk.Tk。 '

第二个窗口是window,它是创建tk.Tk时创建的app的实例。

解决方案是针对一个或另一个:子类tk.Tk,或者不创建子类,然后显式创建tk.Tk的实例。

答案 1 :(得分:0)

正如@Bryan Oakley在他的回答中指出的那样,问题在于您的类一个tk.Tk,因为它是从一个类派生的,所以额外的窗口是因为它创建了一个第二个实例tk.Tk的{​​{1}}方法。

他遗漏的是正确执行此操作的示例-我认为这很重要-因此如下所示:

__init__()