【发布时间】:2016-01-15 12:00:39
【问题描述】:
我必须停止循环并在几秒钟后恢复。我尝试使用 after(),但循环不会冻结。当我使用 time.sleep() (解决 tkinter)时,tkinter 冻结。有另一种方式或功能等效 time.sleep() 没有冻结。
代码:
for message in listOfMessages:
time.sleep(message.time)
#manipulate message
#change text widget
这将冻结我的 tkinter 应用程序。
我尝试使用 after() 但 message.time 是一个浮点数:0.5054564 到 1.5234244。这是随机的。而 after 只支持 int。我无法转换为 int,因为低数字会产生差异。如果我将 0.52342342 转换为 int: 523... 我失去了其他 42342
这也不起作用:
def changes(#values):
#manipulate message
#change text widget
for message in listOfMessages:
app.after(message.time, lambda: changes(#values))
有另一个函数等效 time.sleep 不是冻结 tkinter 并且与 after() 不同?如果没有,还有其他方法可以做到这一点吗?感谢关注。
【问题讨论】:
-
message.time 代表什么——毫秒?秒?分钟?
标签: python python-3.x time tkinter