请协助解决, 以下是自己做的一个小程序 .
想让输入的时间(秒) 按倒计时的方法,再显示出来.
但问题是 : 显示到最后 1秒 才出来,
import time
import tkinter as tk
from os import system
PC_UI = tk.Tk()
PC_UI.title('关机/重启软件')
PC_UI.geometry('250x100')
函数定义
def PC_poweroff(self):
global delayTime
val = int(tk.Entry.get(delayTime))
i=0
while i < val :
i= i+1
time.sleep(0.5)
print(i)
valN = str(i)
powerofflabel = tk.Label(PC_UI,text = valN)
powerofflabel.grid(row=2,column = 1, sticky = 'W')
system('shutdown -s -t 1') # 关机
def PC_restart(self):
time.sleep(delayTime)
system('shutdown -r') # 重启
power and reboot delay time
delayLabel = tk.Label(PC_UI, text ='延时时间输入:')
delayLabel.grid(row=0, column=0, sticky='E')
delayTime = tk.Entry(PC_UI)
delayTime.grid(row =0, column=1, sticky='E')
#power off UI
poweroff_button = tk.Button(PC_UI, text ='关机')
poweroff_button.bind('',PC_poweroff)
poweroff_button.grid(row=1, column=0, sticky='E')
#reboot UI
reboot_button = tk.Button(PC_UI, text='重启')
reboot_button.bind('',PC_restart)
reboot_button.grid(row=1, column=1, sticky='E')
#Delay timer
#powerofflabel = tk.Label(PC_UI, text = valN)
#powerofflabel.grid(row=2, column=1, sticky='W')
PC_UI.mainloop()