为什么要创建2个窗口?

时间:2018-09-15 14:46:24

标签: python tkinter

我有一个程序,该程序具有从API提取时间并在调用时返回这些时间的功能。以下代码应使用Tkinter创建一个窗口,并显示resp()返回的时间。由于API的时间总是在变化,因此它每2秒更新一次。

L=Label(text=resp(), font=("Arial Bold", 35))
L.grid(row=1, column=1)


# Call this function where the value of your variable/number changes
def ChangeValue():
    y=resp()
    root.config(text=y)
    print("Value Changed")
    root.after(2000,lambda :ChangeValue())

root=Tk()
root.update()
root.after(2000,lambda :ChangeValue())
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.title("Abfahrt nächster Zug")
root.geometry('1920x1080')
root.mainloop()

如果我运行此代码,它将创建一个包含resp的小窗口-格式设置如第1行中所述。但是该窗口不是应该的1920x1080。

但是它将创建第二个1920x1080窗口,其中不包含任何文本。

我想要的是一个包含resp(字体= arial,字体大小= 35)的1920x1080窗口

1 个答案:

答案 0 :(得分:3)

  

为什么会创建2个窗口?

首先,使用以下语句创建标签:

L=Label(text=resp(), font=("Arial Bold", 35))

由于尚未创建根窗口,因此tkinter将为您创建一个根窗口,因为必须有一个用于放置标签的窗口。

接下来,您使用此语句显式创建另一个窗口:

root=Tk()

如果只需要一个窗口,则需要在创建其他窗口小部件之前显式创建一个根窗口。