Python 如何在Tkinter窗口中获取/打印每秒更新的时间
我想使用Tkinter在窗口中的标签上打印当前时间(以秒为单位),但不是每500毫秒更新一次,而是保持不变 你知道我该怎么做才能把事情做好吗Python 如何在Tkinter窗口中获取/打印每秒更新的时间,python,tkinter,Python,Tkinter,我想使用Tkinter在窗口中的标签上打印当前时间(以秒为单位),但不是每500毫秒更新一次,而是保持不变 你知道我该怎么做才能把事情做好吗 def timeout(): t=time.time() window.after(500, timeout) return t window = Tkinter.Tk() window.title("Example") time_label= Tkinter.Label(text=timeout(),
def timeout():
t=time.time()
window.after(500, timeout)
return t
window = Tkinter.Tk()
window.title("Example")
time_label= Tkinter.Label(text=timeout(),
bg="black",fg="white").grid(row=1,column=2)
window.geometry("100x100+100+100")
window.after(500, timeout)
window.mainloop()
我应该使用标签以外的东西吗?标签将获取当前时间,然后不再执行任何操作。
timeout
函数将在半秒钟后调用doing\u it
,但我看不到在任何地方定义了它。以下是您将要执行的操作:
def timeout():
time_label.config(text=time.time())
window.after(500, timeout)
window = Tkinter.Tk()
window.title("Example")
time_label= Tkinter.Label(text='',
bg="black",fg="white")
time_label.grid(row=1,column=2)
timeout()
window.geometry("100x100+100+100")
window.mainloop()
这将
标签初始化为空字符串,然后立即调用timeout
。该函数将标签配置为当前时间,然后将对其自身的调用排队。在必要的时间过后,Tkinter
将调用timeout
,这将更新标签
,并将另一个调用排入队列。这将一直持续到你停止为止。如果要执行此操作,请创建一个标志(例如running=True
),并在调用after()
之前检查它。然后,当您将它设置为False
时,timeout()
将停止告诉Tkinter
调用它。仔细阅读这一条,每一条代码……
from tkinter import *
import time
#defining TK()
root = Tk()
#defining Functions
def timesnow():
currentime = time.strftime ("%H:%M:%S")
timelabel.config (text=currentime)
timelabel.after(1000, timesnow)
#creatng GUI's
timelabel = Label(root, font=("Courier", 44))
timelabel.grid()
timesnow()
input = Entry(root)
input.grid()
setbutton = Button(text = "Set Your ALARM")
setbutton.grid()
root.mainloop()
你在干什么?所以你想让时钟只显示更新的秒数?我尝试了你的方法,但得到了一个错误:AttributeError:'NoneType'对象没有属性'config';所以完全复制了它,然后运行了它,还是原来的样子,请您再检查一遍,谢谢。@TigerhawkT3I没有注意到您将小部件创建与几何体管理结合在一起(例如,Label().grid()
)。这是您应该避免的,因为正如您所看到的,引用然后指向grid()
(或您正在使用的任何管理器)的返回值,即None
。我已经编辑了答案来解决这个问题。