当前位置: 代码迷 >> python >> 为什么这会创建2个窗口?
  详细解决方案

为什么这会创建2个窗口?

热度:14   发布时间:2023-07-14 08:45:49.0

我有一个程序,其函数需要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的1920x1080窗口(font = arial,fontsize = 35)

为什么这会创建2个窗口?

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

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

因为您还没有创建根窗口,所以tkinter会为您创建一个,因为必须有一个窗口可以放置标签。

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

root=Tk()

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

  相关解决方案