tkinter标签在睡眠前不会更新

2024-10-08 18:22:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,单击BadButton从不显示“newbadbutton text”,它会等待两秒钟,然后显示“第三个BadButton text” 如何说服脚本同时显示这两条消息。 使用Python 2.7.10

import os, sys
import time
import Tkinter
from Tkinter import *

def GoodButton():
   global labeltext

   time.sleep(2)
   labeltext.set('New GoodButton text')

def BadButton():
   global labeltext

   labeltext.set('New BadButton text')
   time.sleep(2)
   labeltext.set('Third BadButton text')

# GUI construction
root = Tkinter.Tk()
root.title("Label Problem")
# set background
back = Tkinter.Frame(master=root, width=375, height=125, bg='white')
back.pack()

B1 = Tkinter.Button(root,text ="Test GoodButton", command =     GoodButton)
B1.pack()
B1.place(height=25, width=100, x = 25, y = 25)   # default x,y = 0,0

B2 = Tkinter.Button(root,text ="Test BadButton", command = BadButton)
B2.pack()
B2.place(height=25, width=100, x = 150, y = 25)

# add a label to show progress
labeltext = Tkinter.StringVar(value = 'Ready')
L1 = Tkinter.Label(root,textvariable = labeltext)
L1.pack()
L1.place(height=25, width=175, x = 150, y = 75)

# MAIN
root.mainloop()

Tags: textimporttimetkinterplacerootwidthb2
1条回答
网友
1楼 · 发布于 2024-10-08 18:22:33

您可以使用after()做您想做的事情:

def updateLabel(txt):
  labeltext.set(txt)

def GoodButton():
  root.after(2000, updateLabel, 'New GoodButton text')

def BadButton():
  updateLabel('New BadButton text')
  root.after(2000, updateLabel, 'Third BadButton text')

相关问题 更多 >

    热门问题