Python 无法实时更新此GUI中的时间?
设置后的时间在使用标签上的after方法后不会自动更新。为什么不这样做?如何纠正Python 无法实时更新此GUI中的时间?,python,tkinter,Python,Tkinter,设置后的时间在使用标签上的after方法后不会自动更新。为什么不这样做?如何纠正 嗯,我不知道这件事。.after()我从来没有尝试过制作时钟gui。但是在阅读了jasonharper和acw1668的评论和一些搜索之后,你需要在时钟标签上放置相同的代码行还有滴答函数。我明白了……我没有在应用程序类中调用滴答函数,但在这之后,时钟格式从12小时更改为24小时格式……为什么会发生这种情况 tick()只调用一次;您需要在函数内部调用.after()以便它重复地重新调度自身。您还需要在内部调用aft
嗯,我不知道这件事。.after()我从来没有尝试过制作时钟gui。但是在阅读了jasonharper和acw1668的评论和一些搜索之后,你需要在时钟标签上放置相同的代码行还有滴答函数。我明白了……我没有在应用程序类中调用滴答函数,但在这之后,时钟格式从12小时更改为24小时格式……为什么会发生这种情况
tick()
只调用一次;您需要在函数内部调用.after()
以便它重复地重新调度自身。您还需要在内部调用after()
勾选()
。这是否回答了您的问题?我曾尝试将after方法放在tick()函数中,但根本不起作用,甚至显示器上显示的时间也消失了。试试吧!我已经尝试在tick()
的末尾添加clock\u标签。在(1000,勾选)
之后,它就工作了。
import tkinter as tk
from tkinter import ttk
from time import strftime
try:
from ctypes import windll
windll.shcore.SetDpiAwareness(1)
except Exception as e:
pass
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('Digital Clock')
self.geometry('290x70')
self.resizable(False, False)
def tick():
set_time = strftime('%H:%M:%S:%p')
clock_label.config(text=set_time)
clock_label = ttk.Label(self, font=('calibri', 40, 'bold'),
background='yellow', foreground='black',
)
clock_label.grid(row=0, column=0)
clock_label.after(100, tick)
if __name__ == '__main__':
digiclock = App()
digiclock.mainloop()`
```