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() ,最好记住。