请问python使用tkinter库的Label.configure去改变Label文本的语句,为什么总是最后一步才执行呢?
问题描述
最近在学习使用tkinter库来编辑一些GUI,一个小场景就是面板上有一个开始按钮,有一个Label标签,标签开始显示“这是旧的标签文本”,点击更新按钮后标签变成“这是更新后的标签文本”,然后在执行更新的DEF中做了一个print输出,和一个sleep来验证执行顺序,结果发现每次都是点了更新按钮,先执行了print,再执行sleep,最后才执行Label.configure改变标签文本。请问如果我把Label.configure放在代码最前面,如何才能先执行呢?
相关代码
粘贴代码文本(请勿用截图)
# 导入所需库import time
from tkinter import *
# 创建 tkinter 窗口或小部件的实例
win = Tk()
win.geometry("700x350")
def update_text():
# 配置 Label 小部件中的文本
label.configure(text="这是更新后的标签文本")# 按照顺序想先执行这一句
print('测试哪句先执行')# 但是每次都是先执行这一句
time.sleep(5)
# 创建 Label 小部件
label = Label(win, text="这是旧的标签文本", font=('Helvetica 14 bold'))
label.pack(pady=30)
# 创建一个按钮以更新 label 小部件的文本
button = Button(win, text="更新", command=update_text)
button.pack()
win.mainloop()
回答:
import timefrom tkinter import *
win = Tk()
win.geometry("700x350")
def update_text():
# 配置 Label 小部件中的文本
label.configure(text="这是更新后的标签文本")
win.update_idletasks() # 强制更新GUI
print('测试哪句先执行')
time.sleep(5)
label = Label(win, text="这是旧的标签文本", font=('Helvetica 14 bold'))
label.pack(pady=30)
button = Button(win, text="更新", command=update_text)
button.pack()
win.mainloop()
回答:
label.configure执行后添加 win.update() 强制GUI更新
以上是 请问python使用tkinter库的Label.configure去改变Label文本的语句,为什么总是最后一步才执行呢? 的全部内容, 来源链接: utcz.com/p/938948.html