我要做的是打开一个窗口,等待8秒然后关闭它,每次都使用代码,错误信息是: AttributeError:' NoneType'对象没有属性'翻转'
这是代码
import pyglet
from threading import Timer
ag_file = "loading2.gif"
animation = pyglet.resource.animation(ag_file)
sprite = pyglet.sprite.Sprite(animation)
win = pyglet.window.Window(width=sprite.width, height=sprite.height)
def close():
win.close()
return close
t = Timer(8.0, close)
@win.event
def on_draw():
win.clear()
sprite.draw()
t.start()
pyglet.app.run()
答案 0 :(得分:0)
在第二个线程关闭窗口的同时,主线程可能正在使用窗口绘制图像,因为第二个线程关闭窗口而无法找到它。
Pyglet有自己的方法来安全地执行带有延迟(或定期)的函数而没有thread
http://pyglet.readthedocs.io/en/pyglet-1.2-maintenance/programming_guide/time.html
import pyglet
ag_file = "loading2.gif"
animation = pyglet.resource.animation(ag_file)
sprite = pyglet.sprite.Sprite(animation)
win = pyglet.window.Window(width=sprite.width, height=sprite.height)
@win.event
def on_draw():
win.clear()
sprite.draw()
def close(event):
win.close()
pyglet.clock.schedule_once(close, 8.0)
pyglet.app.run()