Python 2.7 time.sleep()与Canvas Tkinter(OS X)

时间:2016-04-23 11:55:06

标签: python macos python-2.7 tkinter tkinter-canvas

我正在使用Tkinter在Python 2.7中编写程序,我想创建3秒的介绍。介绍只是画布图像应该显示3秒然后被删除。问题是我的程序启动3秒然后代码完成,所以没有介绍。我读到这是因为输出缓冲。我不知道如何禁用它,因为每个人都在谈论time.sleep和print功能。那是我的代码:

 root = Tk()
 root.resizable(0,0)
 root.geometry('800x600+200+200')

 #canvas UI
 w = Tkinter.Canvas(root, bd=0, height=600, width=800)

 def intro():
     w.pack()
     intro = Tkinter.PhotoImage(file=r'intro.ppm')
     root.intro = intro
     w.create_image((0,0), image=intro, anchor='nw', tags=("intro"))
     time.sleep(3)
     w.delete("intro")

 intro()

 w.pack()

 root.mainloop ()

1 个答案:

答案 0 :(得分:1)

您不得将time.sleep与Tkinter一起使用。如果希望程序暂停,请使用after

def intro():
    w.pack()
    intro = Tkinter.PhotoImage(file=r'intro.ppm')
    root.intro = intro
    w.create_image((0,0), image=intro, anchor='nw', tags=("intro"))
    w.after(3000, w.delete, "intro")