python tkinter如何动态更改标签文字_使用动态更改Tkinter标签文本...

时间:2025-04-14 07:10:42

我是GUI开发的新手,正在尝试使用Python3.6+Tkinter构建一个应用程序。

我有一个要求,当用户点击一个按钮时,我需要用一个新的文本更改默认文本(创建时由标签显示)。为了达到这个目的,我使用(text="")

为了给您提供我的需求的简化版本,请考虑下面的示例,其中标签最初显示“欢迎”。当用户单击按钮时,标签文本应更改为“流程已启动”,流程完成后,标签文本应更改为“流程已完成”。这里do_something函数运行一个需要一些时间的进程,我使用(5)来模拟一个运行5秒的进程。from tkinter import *

from tkinter import ttk

import time

def do_something():

(text="Process Started")

(5) #some process/script that takes few seconds to execute

(text="Process Completed")

root = Tk()

label = (root, text="Welcome")

()

button = (root, text="Click to Start Process", command=do_something)

()

()

预期:

我的期望是,当用户点击按钮时,Label将显示“Process Started”5秒,最后在流程完成执行后,Label将更新为“Process Complete”。

问题:

我看到的是,当我按下按钮时,标签文本从“欢迎”变为(5秒后)“进程完成”。我不明白为什么我的标签没有在按下按钮后立即显示“进程已启动”。

如上所述,我是GUI开发的新手,我第一次学习Python和Tkinter。所以我可能会在程序本身犯一些错误。因此,如果我在程序流/逻辑本身中犯了任何基本错误,请原谅我的无知。我很想听听你的想法,谢谢!

编辑:正如@Rawing指出的,有一个类似的问题-Why does pause tkinter window before it opens

但是,基本的区别是,我希望在do_something函数完成执行之前不返回mainloop。