我想在Tkinter中创建一些帧,应该定期更新。 以下是其中一个的代码:
from Tkinter import *
import time
import random
class KopfFrame:
def __init__(self,master):
frame = Frame(master,bg="tan")
frame.pack(side=TOP,expand=YES, fill=BOTH)
self.ZeitLabel = Label(frame)
self.ZeitLabel.pack(side=RIGHT, expand=NO,ipadx=2, ipady=2)
self.refresh()
def refresh(self):
self.ZeitLabel.configure(text=time.strftime("%H:%M:%S"))
# call this function again in 5 seconds
#print(self)
self.after(5000, self.refresh)
root = Tk()
K = KopfFrame(root)
root.mainloop()
但是,当我运行它时,我有一个错误:
AttributeError: KopfFrame instance has no attribute 'after'
我很肯定,打电话的方式是个问题。所以,如果有人能帮我,我要么感谢你给我一个关于函数、类以及如何调用和使用它们的好教程的提示
您正试图调用
self.after()
,self
是您的KopfFrame
类的一个实例。该类没有定义这样的方法也许你想在这里叫^{} method 。您需要存储对首先传入的
Frame
对象的引用,然后调用上的after
,该对象是:我改变了什么:
在
KopfFrame.__init__
方法中,不要使frame
只成为局部的,而是使它成为self
上的一个属性使用
self.frame
引用KopfFrame.refresh()
中的帧来访问Frame.after()
方法相关问题 更多 >
编程相关推荐