在Python中创建状态窗口

问题描述 投票:0回答:1

我有一个在后台运行的 Python 脚本,即运行此脚本时,最终用户无法看到脚本有多远,直到 30 分钟后完成或卡在某处。

我现在希望在 Windows 中为最终用户提供一个状态窗口,在达到脚本中的里程碑后显示文本(例如,当 Python 解释器到达脚本中的第 100 行时,文本“10% 的处理是状态窗口中显示完成”)。

我该如何实现这个?

我已经尝试过 tkinter 包。不幸的是,使用 tkinter 包打开的弹出窗口始终需要最终用户执行操作,即在弹出窗口中按“确定”或关闭弹出窗口,直到 Python 解释器继续执行执行下一行代码。但是,我想避免最终用户的任何操作,而只是在状态窗口中显示一些文本,而 Python 解释器则不受阻碍地继续。

python tkinter statusbar popupwindow
1个回答
0
投票

这是一个使用 tqdm 库执行进度条的简单函数。

from tqdm.tk import tqdm
from time import sleep

window = Tk()    

pbar = tqdm(total=30, tk_parent=window) 
# Here you are defining 30 steps in your progress bar. You can adjust this to however many milestones you need.

def run_task():
    for _ in range(30): #dummy job
        sleep(0.1)
        pbar.update(1) #we update the progress bar by 1. 

run_task()
pbar.close()
#If you don't want the button. Do not create it. 

在上面的示例中,进度条(pbar)本质上用作全局进度条。然后,您可以通过为每个步骤调用 pbar.update(x) 来更新 pbar。如果没有关于如何实施任务的基本代码,我无法提供比这更多的帮助。发布的问题线程建议线程等。所有这些都是很好的解决方案,具体取决于您的实际任务。

© www.soinside.com 2019 - 2024. All rights reserved.