Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法实时更新此GUI中的时间?_Python_Tkinter - Fatal编程技术网

Python 无法实时更新此GUI中的时间?

Python 无法实时更新此GUI中的时间?,python,tkinter,Python,Tkinter,设置后的时间在使用标签上的after方法后不会自动更新。为什么不这样做?如何纠正 嗯,我不知道这件事。.after()我从来没有尝试过制作时钟gui。但是在阅读了jasonharper和acw1668的评论和一些搜索之后,你需要在时钟标签上放置相同的代码行还有滴答函数。我明白了……我没有在应用程序类中调用滴答函数,但在这之后,时钟格式从12小时更改为24小时格式……为什么会发生这种情况 tick()只调用一次;您需要在函数内部调用.after()以便它重复地重新调度自身。您还需要在内部调用aft

设置后的时间在使用标签上的after方法后不会自动更新。为什么不这样做?如何纠正


嗯,我不知道这件事。.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()`
```