我正在Python中使用pyglet应用程序。它是一个图形模块,我正在使用它来建立一个国际象棋游戏。我已经完成了代码,但似乎无法关闭pyglet窗口。当一个国王遇害时,我的意图是让窗户关闭。我试过window.exit()。 “窗口”是我的pyglet窗口对象。我不确定还有什么可去的地方。我的代码是几千行,所以在这里发布它不会有用。任何建议,将不胜感激。Python Pyglet窗口强制关闭
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.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. 关闭Pyglet中窗口的事件
- 2. 通过Windows任务栏强制关闭窗口 - >关闭
- 3. 无关闭窗口的关闭窗口
- 4. 关闭窗口
- 5. 强制关闭 -
- 6. 批量强制窗口计算器关闭在Windows 10
- 7. 强制关闭WPF中的当前窗口
- 8. 如何关闭窗体后关闭控制台窗口
- 9. 在VIM中关闭Python代码窗口后自动关闭pylint窗口
- 10. JS关闭窗口
- 11. OAuth2窗口关闭
- 12. 关闭jsp窗口
- 13. 关闭GTK窗口
- 14. javafx关闭窗口
- 15. 关闭WPF窗口
- 16. 块窗口关闭
- 17. VBA - 关闭窗口
- 18. 的Python matplotlib - 不关闭窗口
- 19. 强制关闭iPhone
- 20. getApplicationContext()...强制关闭?
- 21. Intent.ACTION_CALL强制关闭
- 22. 强制关闭mapController?
- 23. DialogPreference强制关闭
- 24. ListActivity强制关闭
- 25. android:强制关闭
- 26. Android:onclicklistener强制关闭?
- 27. 强制关闭流
- 28. Android:AsyncTask强制关闭
- 29. 控制台窗口刚刚关闭? c#
- 30. 如何关闭cv2窗口?