我的Tkinter GUI太......静态?

时间:2011-10-07 08:44:41

标签: python tkinter

我使用Tkinter GUI来启动测量和分析过程,基本上只需点击一下按钮即可。由于这些测量可能需要一段时间,我试图包括一个进度条,即这个:

http://tkinter.unpythonic.net/wiki/ProgressMeter

但是当我确实启动这个过程时,我的整个Tkinter窗口变成了废话,直到测量完成并且它有点重新加载,我的进度条设置得太过100%。这有点不是我想要发生的事情。

那里发生了什么?我对这整个编程工作都很陌生,所以我猜不到所有的工具。我是否需要引入一个单独的线程或类似的东西,以便测量和tkinter主循环(那是什么?)同时运行?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:2)

制作进度条(这些是我的代码中处理67MB文件的代码段。)

progress = ttk.Progressbar(bottommenuframe, orient=HORIZONTAL, length=100, maximum=190073,     mode='determinate')
progress.pack(side=RIGHT)

progress.start() ## this starts the progressbar

然后在分析期间:

def analysisfunction():
    progress.step(1) 
    ##do some analysis
    root.after(0, analysisFunction)

    if job == complete:
        stop

就像我说过这将适用于我的67MB文件和tkinter。 希望有所帮助:)

答案 1 :(得分:0)

每次更新进度条时都会调用widget.update() / root_window.update()