请问python使用tkinter库的Label.configure去改变Label文本的语句,为什么总是最后一步才执行呢?

请问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 time

from 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

回到顶部