我以为我会做一个正在运行的时钟程序。我有这个代码,它适用于我想要它做的,但我希望它是花哨的,并将其输出到一个新的窗口。我想到了一个消息框,但需要不断关闭。
有没有解决方法,或者我应该坚持使用控制台?
x=0
import datetime
import time
while x<10:
currentTime=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
time.sleep(1)
print(str(currentTime))
修改 这就是我现在所拥有的,但窗户到处都是。
try:
from Tkinter import *
except ImportError:
from tkinter import *
import datetime
import time
x=0
while x<10:
root = Tk()
prompt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
label1 = Label(root, text=prompt, width=len(prompt))
label1.pack()
def close_after_1s():
root.destroy()
root.after(1000, close_after_1s)
root.mainloop()
答案 0 :(得分:2)
你错过了Tk的观点。整个事情是一个循环(因此是主循环),你不断破坏和创建一个新的窗口,因此到处都是。
我认为你只想要每秒更新一次:
from Tkinter import Tk,StringVar,Label
import datetime
def update():
global prompt,root
prompt.set(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
root.after(1000, update)
root = Tk()
prompt = StringVar()
label1 = Label(root, textvar=prompt, width=len(prompt.get()))
label1.pack()
update()
root.mainloop()
我的建议是把所有这些都放在一堂课上。谷歌的一些Tk例子。