我正在编写一个yahtzee模拟器(用于学习),并希望有几个屏幕(tkinter实例)同时运行,但我不希望它们同时启动,我不明白为什么它们在同一时间启动。
我没有尝试太多,除了谷歌它,我是新的tkinter编程…
from tkinter import *
Screen1 = Tk()
screen2 = Tk()
Screen1.mainloop()我预计只会显示screen1,但它们都显示出来了,有什么帮助吗?
发布于 2019-01-14 05:44:20
您将显式创建两个窗口,因此将出现两个窗口。
您永远不应该创建多个Tk实例。如果需要多个窗口,则第二个和后续窗口需要是Toplevel的实例。您只需调用mainloop一次--它不是创建窗口的原因,而只是窗口响应事件的机制。无论您有多少个窗口,只需调用一次mainloop即可。
这样做的原因基于tkinter的实现方式-- tkinter是嵌入式tcl解释器(完全不同的编程语言环境)的薄包装器,每个实例都有自己的解释器。这意味着一个实例中的所有小部件和tkinter变量(StringVar等)都是不可见的,任何其他实例都无法访问。
如果要创建其他窗口,但最初将其隐藏,则可以对要隐藏的任何窗口调用withdraw方法。
https://stackoverflow.com/questions/54173404
复制相似问题