【发布时间】:2013-05-04 12:09:14
【问题描述】:
使用 Python 中的 ttk.Progressbar(在 tkinter GUI 中),我试图在按下按钮时显示进度条。单击 gui 上的“分析”按钮调用脚本中的分析函数,我的意思是它是一个三级火箭:
grid() 将进度条小部件添加到大型机,然后 start() 它。
进行实际计算(在我的 测试运行)
-
stop() 进度条和 grid_remove() 再次向用户隐藏它,现在作业已完成。
如果我注释掉步骤 3,进度条将按预期显示并启动,同时执行步骤 2。但是如果第三步仍然存在,那么进度条就不会首先显示。现在,由于第二步中的工作正在以任何一种方式执行,我假设它可能与网格化和删除同一函数调用中的进度条小部件有关,但因为这是我的第一个真正的 gui 项目在python中,我对如何解决这个问题有点不知所措(如果这确实是问题的话)。有没有办法解决这个问题,或者更优雅地完成同样的任务?按钮调用的函数如下:
def analyze():
# --Step 1--
progressbar.grid()
progressbar.start()
# --Step 2--
global analysis
analysis = analyzer.Analysis(file_path.get())
analysis.output_to_file()
# --Step 3--
progressbar.stop()
progressbar.grid_remove()
我会发布一张我的界面图片以进一步澄清,但由于我目前的声誉评分不允许发布图片,我希望我的解释(和代码)已经足够清楚地说明了问题。
【问题讨论】:
标签: python python-3.x tkinter progress-bar ttk