python - Time.sleep() 函数放置

标签 python time tkinter

我遇到的问题是,当我尝试使用 time.sleep(3) 将第一个函数(StartUpScr)小部件在屏幕上保留 3 秒,然后删除放置在屏幕上的所有小部件,然后继续放置下一个函数(MenuScr)小部件。我已成功使用 destroy() 删除第一个小部件并将其替换为第二个小部件,但由于某种原因,在函数和主程序中的任何位置输入 time.sleep(3) 时,而不是第一个小部件保留3 秒,然后被替换,它会延迟程序的启动,产生一个空白屏幕,然后快速闪过第一个屏幕到第二个屏幕。

from tkinter import *
import tkinter
import time



window = tkinter.Tk()                               
window.title("BINARY-SUMS!!!")                      
window.geometry("1000x800")                        
window.wm_iconbitmap('flower3.ico')                 
window.configure(background='lavender')            

def StartUpScr():
    StartUpScr = tkinter.Label(window, text="FIRST-SCREEN!!!",fg = "Aqua",bg = "Lavender",font = ("Adobe Gothic Std B", 90, "bold" )).pack()

StartUpLabel = tkinter.Label(window, text="Developed by Robert Bibb 2016",bg = "Lavender",font = ("Calibri Light (Headings)", 10, "italic" ))
    StartUpLabel.pack()
    StartUpLabel.place(x = 400, y = 775)


def MenuScr():
    StartUpScr = tkinter.Label(window, text="SECOND-SCREEN!!!",fg = "green",bg = "Lavender",font = ("Adobe Gothic Std B", 85, "bold" ))
    StartUpScr.pack()


if __name__ == "__main__":
    StartUpScr()
    time.sleep(3)
    for widget in window.winfo_children():
        widget.destroy()
    MenuScr()

最佳答案

time.sleep() 在这里不起作用,因为它会停止程序的执行,您必须使用 after...并且在 GUI 编程中使用 sleep 也是一个不好的做法。

root.after(time_delay, function_to_run, args_of_fun_to_run)

所以在你的情况下它会喜欢

def destroy():
    #destroy here
    for widget in window.winfo_children():
        widget.destroy()

以及 if 语句之后 -

if __name__ == "__main__":
    StartUpScr()
    window.after(3000, destroy)
    MenuScr()

关于python - Time.sleep() 函数放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545275/

相关文章:

python - 如何从 DTD 创建 GUI?

c# - 员工时钟计算

java - 定时java循环

python - tkinter ImageTk 在日志文件中创建不需要的日志

python - 在 tkinter 中如何将入口函数分配给变量

python - python 代码在数组中不起作用

python - 多列作为多索引数据框中每个级别的索引

python - 如何从桌面应用程序向 python flask 服务器发送 http 请求?

c# - 以自定义格式解析包含日期和时间的字符串

python - 覆盆子PI B +上的python 2.7 cvtColor错误215