栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Tkinter显示初始屏幕并隐藏主屏幕,直到__init__完成

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tkinter显示初始屏幕并隐藏主屏幕,直到__init__完成

python3的一个简单示例:

#!python3import tkinter as tkimport timeclass Splash(tk.Toplevel):    def __init__(self, parent):        tk.Toplevel.__init__(self, parent)        self.title("Splash")        ## required to make window show before the program gets to the mainloop        self.update()class App(tk.Tk):    def __init__(self):        tk.Tk.__init__(self)        self.withdraw()        splash = Splash(self)        ## setup stuff goes here        self.title("Main Window")        ## simulate a delay while loading        time.sleep(6)        ## finished loading so destroy splash        splash.destroy()        ## show window again        self.deiconify()if __name__ == "__main__":    app = App()    app.mainloop()

这样的事情在tkinter中很难实现的原因之一是,仅在程序未运行特定功能且到达主循环时才更新Windows。对于类似这样的简单操作,您可以使用

update
update_idletasks
命令使其显示/更新,但是,如果延迟时间过长,则在Windows上,窗口可能会“无响应”

解决此问题的一种方法是在整个加载例程中放置多个

update
update_idletasks
命令,或者使用线程。

但是,如果您使用线程,我建议不要将启动程序放入其自己的线程中(可能更容易实现),最好将加载任务放入其自己的线程中,并保持工作线程和GUI线程分开,因为这样容易提供更流畅的用户体验。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号