2017-04-17 17 views
0

ウィンドウの "X"でPygletを閉じた後、イベント "on_close"がトリガーされると仮定しますが、そうではありません。何が間違っていますか?ここPygletのウィンドウの終了イベント

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

+0

'on_close()'関数に 'window.close()'文を追加します。 –

+0

問題は、関数 "on_close"が呼び出されない、完全なアプリケーションのリンクを更新しました –

答えて

1
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() 

次の2つの問題、1を持っている - あなたはあなたのアプリケーションにイベントディスパッチのpyglet.app.run()または任意のフォームを逃しています。

もう1つの問題は、on_close()機能にdecoratorを使用しなかったことです。
以前に宣言されたデコレータは、その関数のためにのみ、つまりon_draw()です。

他のいくつかの側面ノート:
あなたが呼び出す必要がflip()ウィンドウといくつかの回をクリアしていない、覚えておくことが良いかもしれません。

+0

申し訳ありませんが、テキスト全体をコピーしませんでした。しかし、追加@ window.eventはトリックでした!どうもありがとう! –

+0

@BennyH。心配しないで、それはうれしい:)幸せなコーディング! – Torxed

関連する問題