首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Tk.mainloop()呈现tk实例

使用Tk.mainloop()呈现tk实例
EN

Stack Overflow用户
提问于 2019-01-14 05:30:23
回答 1查看 43关注 0票数 0

我正在编写一个yahtzee模拟器(用于学习),并希望有几个屏幕(tkinter实例)同时运行,但我不希望它们同时启动,我不明白为什么它们在同一时间启动。

我没有尝试太多,除了谷歌它,我是新的tkinter编程…

代码语言:javascript
复制
from tkinter import *
Screen1 = Tk()
screen2 = Tk()

Screen1.mainloop()

我预计只会显示screen1,但它们都显示出来了,有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-14 05:44:20

您将显式创建两个窗口,因此将出现两个窗口。

您永远不应该创建多个Tk实例。如果需要多个窗口,则第二个和后续窗口需要是Toplevel的实例。您只需调用mainloop一次--它不是创建窗口的原因,而只是窗口响应事件的机制。无论您有多少个窗口,只需调用一次mainloop即可。

这样做的原因基于tkinter的实现方式-- tkinter是嵌入式tcl解释器(完全不同的编程语言环境)的薄包装器,每个实例都有自己的解释器。这意味着一个实例中的所有小部件和tkinter变量(StringVar等)都是不可见的,任何其他实例都无法访问。

如果要创建其他窗口,但最初将其隐藏,则可以对要隐藏的任何窗口调用withdraw方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54173404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档