Ich arbeite an einer Pyglet-Anwendung in Python. Es ist ein Grafikmodul, und ich benutze es, um ein Schachspiel zu bauen. Ich habe den Code beendet, aber ich kann das Pyglet-Fenster nicht schließen. Ich hatte die Absicht, das Fenster zu schließen, wenn ein König getötet wurde. Ich habe window.exit() versucht. "window" ist mein Pyglet-Fensterobjekt. Ich bin mir nicht sicher, wohin ich sonst gehen soll. Mein Code ist mehrere tausend Zeilen, so dass es hier nicht nützlich wäre. Irgendwelche Vorschläge würden geschätzt werden.Python Pyglet Window Force schließen
0
A
Antwort
1
window.exit() Funktion existiert nicht in Pyglet, stattdessen versuchen window.close(). Sie können die Exit-Funktion in der App aufrufen: als pyglet.app.run() und pyglet.app.exit()
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()
Der obige Code wird das Fenster nach 2 Sekunden schließen.
1
@Attila_Toth Antwort sollte funktionieren, aber ich werde auf sich hinzufügen und einem benutzerdefinierten pyglet.app.run()
Schleife innerhalb der pyglet.window.Window
Klasse erstellen:
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()
Dieses Beispiel können Sie Ihre Fenster zu schließen beim Drücken Flucht oder wenn Sie drücken die Schließen-Taste in Ihrem Fenstermanager.
Verwandte Themen
- 1. 8 Queens (Pyglet-Python)
- 2. Python und Pyglet Eingabe
- 3. AdMob Force schließen (Android)
- 4. AlertDialog Force Schließen
- 5. liveCycle Force schließen Dokument
- 6. erkennen upload window schließen jquery
- 7. Android Activity Force Schließen Problem
- 8. Track Force-Schließen-Warnung (Ausnahme)
- 9. Python minecraft pyglet glClear() skipping frames
- 10. Window-Leveling in Python
- 11. tkinter python maximize window
- 12. Pyglet OpenGL Anti-Aliasing
- 13. Python Pyglet AVBin - Wie installiere ich AVBin
- 14. Closing-Event des Fensters in Pyglet
- 15. android app force Schließen wegen leer EditText
- 16. Force schließen einen Sockel, wenn geöffnet ist
- 17. Force schließen auf Android-Standort Berechtigungen
- 18. Android GPS ACCURACY_HIGH verursacht Force schließen?
- 19. AdColony verursacht Force schließen während Vungle Ad
- 20. textview.setText() in ListView verursacht Force schließen
- 21. Android-Socket-Implementierung mit AsyncTask Force schließen
- 22. BroadCastReceiver Force Schließen für Sms erhalten
- 23. Force Nginx zum sofortigen Schließen der Verbindung
- 24. App Force schließen Thenewboston android Tutorial
- 25. Force Schließen, wenn ich diese Anwendung ausführen
- 26. Android Anwendung Force schließen ohne Fehler
- 27. Force Schließen Fehler auf Android-Anwendung
- 28. PyOpenGl oder Pyglet?
- 29. OpenGL Kommissionierung mit Pyglet
- 30. Force-Python ganze Zahl