Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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制作交互式简单手表?_Python_Tkinter - Fatal编程技术网

如何用python制作交互式简单手表?

如何用python制作交互式简单手表?,python,tkinter,Python,Tkinter,我对如何用python创建手表有点困惑 我编写了以下代码: from Tkinter import * root = Tk() tt='vv' def time(tt): from time import strftime tt=strftime('%H:%M:%S') return tt Label= Label(root,bd=11,text=time(tt)) Label.pack() root.mainloop() 我如何让它互动?现在它只显示运行程序时

我对如何用python创建手表有点困惑 我编写了以下代码:

from Tkinter import *
root = Tk()

tt='vv'

def time(tt):
    from time import strftime
    tt=strftime('%H:%M:%S')
    return tt

Label= Label(root,bd=11,text=time(tt))
Label.pack()

root.mainloop()

我如何让它互动?现在它只显示运行程序时的时间

您可以使用
after
函数来安排方法调用

这里有一个小例子。请注意,我使用的是一个可轻松设置
标签
的文本

from Tkinter import *
from time import strftime

root = Tk()

time_var = StringVar()

def set_time():
    time_var.set(strftime('%H:%M:%S'))
    root.after(1000, set_time)

Label(root, bd=11, textvariable=time_var).pack()
set_time()
root.mainloop()

我调用
set\u time
一次,然后
set\u time
将自己安排为每1000毫秒调用一次。

您可以使用
after
函数来安排方法调用

这里有一个小例子。请注意,我使用的是一个可轻松设置
标签
的文本

from Tkinter import *
from time import strftime

root = Tk()

time_var = StringVar()

def set_time():
    time_var.set(strftime('%H:%M:%S'))
    root.after(1000, set_time)

Label(root, bd=11, textvariable=time_var).pack()
set_time()
root.mainloop()

我调用
set_time
一次,然后
set_time
将自己安排为每1000毫秒调用一次。

after函数在哪里找到的?)我在文档中找不到它(在(delay_ms,callback=None,*args)[#]注册一个在给定时间后调用的报警回调。哦,我找到了)此方法注册一个回调函数,该函数将在给定的毫秒数后调用。Tkinter仅保证不会在此之前调用回调;如果系统忙,实际延迟可能会更长。您可以通过在取消后调用
来停止对
的单独呼叫
after
返回一个ID,您可以在取消后将其传递到
。要完全停止更新,只需停止调用
root.after(…)
set\u time
中(只需添加一些条件,如标志或其他内容)。是,我确实读过,但那是一堵墙:)我把我的影响放在下面)你的方法
recc
创建一个新的局部变量
akt\u var
,并隐藏全局变量
akt\u var
。您可以通过将
global akt_var
作为
recc
函数的第一行来解决这个问题,告诉python您想要使用global
akt_var
而不是创建一个新的本地变量。Put please in future提出一个新问题,而不是将后续问题作为注释或答案发布。你在哪里找到after函数?)我在文档中找不到它(after(delay_ms,callback=None,*args)[#]注册一个在给定时间后调用的报警回调。哦,我找到了)此方法注册一个回调函数,该函数将在给定的毫秒数后调用。Tkinter仅保证不会在此之前调用回调;如果系统忙,实际延迟可能会更长。您可以通过在取消后调用
来停止对
的单独呼叫
after
返回一个ID,您可以在取消后将其传递到
。要完全停止更新,只需停止调用
root.after(…)
set\u time
中(只需添加一些条件,如标志或其他内容)。是,我确实读过,但那是一堵墙:)我把我的影响放在下面)你的方法
recc
创建一个新的局部变量
akt\u var
,并隐藏全局变量
akt\u var
。您可以通过将
global akt_var
作为
recc
函数的第一行来解决这个问题,告诉python您想要使用global
akt_var
而不是创建一个新的本地变量。请在将来提出一个新问题,而不是将后续问题作为评论或答案发布。因此,所谓“交互”并不意味着您希望用户与它交互,但您希望大约每秒更新一次时钟,对吗?因此,所谓“交互”并不意味着您希望用户与它交互,但是你想每秒更新一次时钟,对吗?