在 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()
我会发布我的界面图片以进一步澄清,但由于我目前的声誉评分不允许发布图像,我希望我已经通过我的解释(和代码)使问题足够清楚。