Python在单独的窗口中运行时钟

时间:2016-10-21 10:39:08

标签: python python-3.x

我以为我会做一个正在运行的时钟程序。我有这个代码,它适用于我想要它做的,但我希望它是花哨的,并将其输出到一个新的窗口。我想到了一个消息框,但需要不断关闭。

有没有解决方法,或者我应该坚持使用控制台?

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()

1 个答案:

答案 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例子。