Python:Tkinter - 如何让光标显示繁忙状态

时间:2013-12-05 22:18:39

标签: python tkinter

我正在尝试让Tkinter显示一个忙碌的光标。不幸的是,我必须遗漏一些非常明显的东西。以下是一个非常简单的程序,可以重现我的问题:

 from Tkinter import *
 import time

 def do_something():
     print "starting"
     window.config(cursor="wait")
     time.sleep(5)
     window.config(cursor="")
     print "done"
     return

 root = Tk()
 menubar = Menu(root)
 filemenu = Menu(menubar, tearoff=0)
 filemenu.add_command(label="Do Something", command=do_something)
 filemenu.add_command(label="Exit", command=root.quit)
 menubar.add_cascade(label="File", menu=filemenu)
 root.config(menu=menubar)
 root.mainloop()

我没有看到光标发生任何变化

1 个答案:

答案 0 :(得分:4)

像这样do_something

def do_something():
 print "starting"
 root.config(cursor="wait")
 root.update()
 time.sleep(5)
 root.config(cursor="")
 print "done"

基本上,我做了三件事:

  1. window替换为root(因为window未定义且root是窗口的句柄)。

  2. 在配置光标的行后面添加了root.update()

  3. 删除了不必要的return(这不会导致任何错误,但为什么会这样?)。