我正在编程yahtzee模拟器(用于学习),并且希望同时运行几个屏幕(tkinter实例),但是我不希望它们同时启动,所以我不知道为什么它们确实要同时开始。
除了谷歌搜索之外,我没有做太多尝试,我是tkinter编程的新手...
from tkinter import *
Screen1 = Tk()
screen2 = Tk()
Screen1.mainloop()
我希望只显示screen1,但同时显示它们,有帮助吗?
答案 0 :(得分:2)
您正在显式创建两个窗口,因此出现两个窗口。
您永远不能创建多个Tk
实例。如果需要多个窗口,则第二个窗口和后续窗口必须是Toplevel
的实例。您只需要调用mainloop
一次-不是创建窗口的原因,它只是窗口可以响应事件的机制。无论您有多少个窗口,都只需打一次mainloop
。
这样做的原因是基于tkinter的实现方式-tkinter是嵌入式tcl解释器(完全不同的编程语言环境)的薄包装,并且每个实例都有自己的解释器。这意味着一个实例中的所有小部件和tkinter变量(StringVar
等)对于其他任何实例都是不可见和不可访问的。
如果要创建其他窗口,但最初将其隐藏,则可以在要隐藏的任何窗口上调用withdraw
方法。