Ant*_*rro 3 python user-interface tkinter
看起来应该如此简单的事情给我带来了很大的问题。我有一个 Tkinter GUI,我正在尝试定期更新。具体来说,我正在从画布上删除项目并替换它们。作为一个例子,尽管我只是想打印一个证明 after 函数正常工作的语句。当我放置一个按钮并单击它时,一切都很好,但我想使用 after() 函数自动完成它。不过,我没有太多运气让它工作。
class app():
def __init__(self, frame):
self.pad = tk.Canvas(frame)
self.pad.create_window(10, 10, window=tk.Button(self.pad,command=update)
self.pack(fill="both")
#More Stuff
#Neither one worked
frame.after(1000,update)
#self.pad.after(1000,update)
def update(self):
print "Updating"
#More Stuff
if __name__=="__main__":
root = tk.TK()
app(root)
root.mainLoop()
Run Code Online (Sandbox Code Playgroud)
当然,这不是完整的代码,但希望它有足够的意义来了解我正在尝试做什么。因此,当我单击按钮时,会看到“正在更新”字样。但是当我使用 after 函数时,它在开始时出现一次,再也不会出现。我也是 Python 2.4.4 版本,别以为我没有发言权哈哈。感谢您的任何帮助!
after
在 结束时调用update
:
def __init__(self, frame):
self.frame = frame
...
self.frame.after(1000, self.update)
def update(self):
...
self.frame.after(1000, self.update)
Run Code Online (Sandbox Code Playgroud)
这是下班后的样子。它只将回调(例如self.update
)排队一次。根据文档:
每次调用此方法时只调用一次回调。要继续调用回调,您需要在其内部重新注册回调
归档时间: |
|
查看次数: |
2182 次 |
最近记录: |