私はPythonでPygletアプリケーションを開発しています。それはグラフィックスモジュールであり、チェスゲームを構築するために使っています。私はコードを終えましたが、ピグレットウィンドウを閉じることはできません。私の意図は、王が殺されたときに窓を閉めることでした。私はwindow.exit()を試しました。 "window"は私のpygletウィンドウオブジェクトです。私はどこに行くべきか分からない。私のコードは数千行なので、ここに投稿すると便利ではないでしょう。任意の提案をいただければ幸いです。Python Pyglet Window強制終了
0
A
答えて
1
pygletにwindow.exit()関数が存在しません。代わりにwindow.close()を試してください。上記のコードは2秒後にウィンドウを閉じます
from pyglet.gl import *
class Triangle:
def __init__(self):
self.vertices = pyglet.graphics.vertex_list(3, ('v3f', [-0.5,-0.5,0.0, 0.5,-0.5,0.0, 0.0,0.5,0.0]),
('c3B', [100,200,220, 200,110,100, 100,250,100]))
class MyWindow(pyglet.window.Window):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_minimum_size(400, 300)
glClearColor(0.2, 0.3, 0.2, 1.0)
self.triangle = Triangle()
def on_draw(self):
self.clear()
self.triangle.vertices.draw(GL_TRIANGLES)
def on_resize(self, width, height):
glViewport(0, 0, width, height)
def exit_callback(self, dt):
self.close()
if __name__ == "__main__":
window = MyWindow(400, 400, "My Pyglet Window", resizable=True)
pyglet.clock.schedule_once(window.exit_callback , 2)
pyglet.app.run()
)((pyglet.app.runとして)とpyglet.app.exit: あなたはアプリ上でexit関数を呼び出すことができます。
1
@Attila_Toth応答動作するはずですが、私はそれに追加してpyglet.window.Window
クラス内のカスタムpyglet.app.run()
ループを作成します:
import pyglet
from pyglet.gl import *
key = pyglet.window.key
class main(pyglet.window.Window):
def __init__ (self):
super(main, self).__init__(800, 800, fullscreen = False)
self.x, self.y = 0, 0
#self.bg = Spr('background.jpg')
self.alive = 1
def on_draw(self):
self.render()
def on_close(self):
self.alive = 0
def on_key_press(self, symbol, modifiers):
if symbol == key.ESCAPE: # [ESC]
self.alive = 0
def render(self):
self.clear()
#self.bg.draw()
self.flip()
def run(self):
while self.alive == 1:
self.render()
# -----------> This is key <----------
# This is what replaces pyglet.app.run()
# but is required for the GUI to not freeze
#
event = self.dispatch_events()
x = main()
x.run()
この例ではエスケープとき、またはを押したとき、あなたのウィンドウを閉じるようになりますウィンドウマネージャの閉じるボタンを押します。
関連する問題
- 1. 強制終了アプリケーション
- 2. リサイクルビットマップアイスクリームサンドイッチ強制終了
- 3. AlertDialog強制終了
- 4. ListView強制終了
- 5. アニメーションブロックの強制終了
- 6. テンポラリテーブルの強制終了パフォーマンス
- 7. 共有プリファレンス強制終了
- 8. MSIインストーラの強制終了?
- 9. アプリケーションの強制終了
- 10. Androidアプリの強制終了
- 11. アプリケーションの強制終了
- 12. Android sharedpreferences強制終了
- 13. Androidウェイクロック強制終了
- 14. Tabhostで強制終了
- 15. Vue強制終了タグ
- 16. Androidタッチイベントの強制終了
- 17. Android SQLite onUpgrade =強制終了
- 18. Pygletのウィンドウの終了イベント
- 19. プロセスが強制的に強制終了された場合の終了コード
- 20. サブプロセスを強制終了する
- 21. ブロッキングスレッドを強制終了する
- 22. jbossポータルサーバで強制的にユーザセッション(ログアウト)を強制終了する
- 23. 終了イベントハンドラを閉じるアプリケーションを強制終了
- 24. Androidアプリはアクティビティの終了後に強制終了します
- 25. style = "@ style/Widget.AppCompat.Button.Colored"強制終了アプリケーション
- 26. 再開時の強制終了
- 27. 強制終了後のGCMリスナー
- 28. Admobを使用して強制終了
- 29. Android sqlite `db.execSQL()`は強制終了です
- 30. Android:強制終了Spinner with ArrayList