我的代码获取笔记本电脑的电池数据,并使用Python龟中的数据生成图表。 该代码每2分钟获取一个数据点并将其打印在龟屏幕上。问题是,在等待另一个数据点时,乌龟窗口没有响应,我无法激活它。
当我最后添加turtle.done()时,龟窗工作正常但是我关闭龟窗后代码没有继续,我不想要,我希望窗口一直可见
有没有什么好方法让窗口“行动”,就像使用turtle.done()一样,但它会继续循环?
答案 0 :(得分:0)
如果我正确理解您的需求,那么您可以使用海龟屏幕的ontimer()
方法。你想要done()
将控制权交给tkinter的事件循环。但是通过有一个ontimer()
事件,它会重新唤起它作为它做的最后一件事,你可以让事件友好的代码不断检查更多的数据点。大致是:
from turtle import Turtle, Screen
def my_update():
# get the new data
# ...
# draw the new data
turtle.forward(...)
# reinvoke one-shot (5 secs. from now)
screen.ontimer(my_update, 5000)
screen = Screen()
turtle = Turtle()
# invoke one-shot (5 secs. from now)
screen.ontimer(my_update, 5000)
screen.mainloop()