python中label函数_使用Label.configure()动态改变Tkinter标签文本

我是GUI开发新手,尝试使用Python3.6 + Tkinter构建应用程序。使用Label.configure()动态改变Tkinter标签文本

我有一个需求,当用户点击一个按钮时,需要用新文本更改默认文本(在创建时由标签显示)。为了实现我使用label.configure(text="")

为了给您一个我的要求的简化版本,请考虑以下示例,其中标签最初显示“欢迎”。当用户单击按钮时,标签文本应更改为“流程开始”,并且在该过程完成后,标签文本应更改为“处理完成”。这里do_something函数运行一个需要一些时间的进程,我使用time.sleep(5)来模拟运行5秒的进程。

from tkinter import *

from tkinter import ttk

import time

def do_something():

label.configure(text="Process Started")

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

label.configure(text="Process Completed")

root = Tk()

label = ttk.Label(root, text="Welcome")

label.pack()

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

button.pack()

root.mainloop()

预期: 我意料的是,当用户点击该按钮时,标签会显示“进程启动的” 5秒和流程执行完毕后终于,标签将被更新为“过程完成”。

问题: 我看到的是,当我按下按钮时,标签文本从“欢迎”更改为(5秒后)“处理完成”。我无法理解为什么我的标签在按下按钮后没有显示“Process Started”。

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

编辑:正如@Rawing指出,存在类似的问题 - Why does time.sleep pause tkinter window before it opens 的基本区别,然而,就是我想不会返回主循环do_something函数完成执行之前。

+0

可能的重复[为什么time.sleep暂停tkinter窗口打开之前](https://stackoverflow.com/questions/30284270/why-does-time-sleep-pause-tkinter-window-before-it-打开) –

+0

@Rawing感谢您指出一个类似的问题。但我的问题的区别是,我不希望返回到主循环,直到函数'do_comething'完全执行完毕 –

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值