Я работаю над пигментным приложением на Python. Это графический модуль, и я использую его для создания шахматной игры. Я закончил код, но я не могу закрыть окно пирога. Мое намерение состояло в том, чтобы закрыть окно, когда был убит король. Я попробовал window.exit(). «window» - это мой объект окна pyglet. Я не знаю, куда еще идти. Мой код - несколько тысяч строк, поэтому публикация здесь не принесет пользы. Мы ценим любые предложения.Python Pyglet Window Force Закрыть
0
A
ответ
1
Функция window.exit() в pyglet отсутствует, вместо этого попробуйте window.close(). Вы можете вызвать функцию выхода на приложение: в pyglet.app.run() и 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()
Код выше будет закрыть окно через 2 секунды.
1
@Attila_Toth ответ должен работать, но я добавлю на него и создать пользовательский pyglet.app.run()
петлю внутри pyglet.window.Window
класса:
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. Python Pyglet - «Нет модуля с именем window»
- 2. 8 Queens (pyglet-python)
- 3. закрыть pyqt4 window автоматически
- 4. Вход Python и Pyglet
- 5. python pyglet and opengl
- 6. liveCycle force закрыть документ
- 7. Force закрыть веб-браузер
- 8. Селен Force Закрыть Firefox
- 9. TreeMap Force Закрыть
- 10. AlertDialog Force Закрыть
- 11. App Force Закрыть
- 12. Force Закрыть описание ошибки
- 13. Force Закрыть приложение программно
- 14. Music Player Force Закрыть
- 15. Как закрыть файловые ресурсы в pyglet
- 16. Python Pyglet мыши обработки
- 17. Import pyglet on python
- 18. python pyglet on_mouse_press
- 19. Как использовать супер в Pyglet в событиях подкласса Window?
- 20. Force ProgressDialog закрыть после уничтожения
- 21. JQuery Закрыть Div Window + печенье
- 22. Как закрыть DOM Window jquery?
- 23. Force nginx немедленно закрыть соединение
- 24. Studio ImageView Error Force Закрыть
- 25. Force Закрыть ListView в Android
- 26. Force Закрыть asynctask (Незаконный символ)
- 27. Использование Enthought Canopy Python и Pyglet
- 28. Pyglet sound playing on python
- 29. Аудиофайл не играет Python Pyglet
- 30. пиксельный рисунок в pyglet (python)