Pyglet 中 window 的结束事件
Closing-Event of window in Pyglet
在 window 的 "X" 关闭 Pyglet 后,我假设事件 "on_close" 会被触发,但似乎并非如此。我做错了什么?
window = pyglet.window.Window(fullscreen=False)
@window.event
def on_draw():
sprite.draw()
label.draw()
def on_close():
print("I'm closing now") #<- this never happens
在此处完成脚本(第 175 行):
https://github.com/VirToReal/py-slideshow/blob/master/slideshow.py
import pyglet
window = pyglet.window.Window(fullscreen=False)
@window.event
def on_draw():
window.clear()
window.flip()
@window.event
def on_close():
print("I'm closing now") #<- this never happens
pyglet.app.run()
您有两个问题,一个 - 您缺少 pyglet.app.run()
或您的应用程序中的任何形式的事件调度。
另一个问题是您没有为 on_close()
函数使用 decorator。
之前声明的装饰器只针对那个函数,即on_draw()
.
一些其他的旁注:
您没有清除 window 并且有时需要调用 flip()
,最好记住。
在 window 的 "X" 关闭 Pyglet 后,我假设事件 "on_close" 会被触发,但似乎并非如此。我做错了什么?
window = pyglet.window.Window(fullscreen=False)
@window.event
def on_draw():
sprite.draw()
label.draw()
def on_close():
print("I'm closing now") #<- this never happens
在此处完成脚本(第 175 行): https://github.com/VirToReal/py-slideshow/blob/master/slideshow.py
import pyglet
window = pyglet.window.Window(fullscreen=False)
@window.event
def on_draw():
window.clear()
window.flip()
@window.event
def on_close():
print("I'm closing now") #<- this never happens
pyglet.app.run()
您有两个问题,一个 - 您缺少 pyglet.app.run()
或您的应用程序中的任何形式的事件调度。
另一个问题是您没有为 on_close()
函数使用 decorator。
之前声明的装饰器只针对那个函数,即on_draw()
.
一些其他的旁注:
您没有清除 window 并且有时需要调用 flip()
,最好记住。