[英]How is this method called? (Pyglet)
以下代碼是pyglet使用的常用樣式(使用裝飾器)的替代方法。
誰能解釋在這里如何調用on_draw()方法?
import pyglet
class HelloWorldWindow(pyglet.window.Window):
def __init__(self):
super(HelloWorldWindow, self).__init__()
self.label = pyglet.text.Label('Hello, world!')
def on_draw(self):
self.clear()
self.label.draw()
if __name__ == '__main__':
window = HelloWorldWindow()
pyglet.app.run()
使用裝飾器編寫的代碼可以在這里找到。
您可以僅瀏覽源代碼以找到答案。
EventLoop類(由pyglet.app.run()
)定期分派on_draw
事件。
從來源:
調用
run
開始應用程序事件循環,該循環處理操作系統事件,調用pyglet.clock.tick
調用計划的函數以及調用pyglet.window.Window.on_draw
和pyglet.window.Window.flip
來更新窗口內容。
Window類訂閱此事件:
BaseWindow.register_event_type('on_draw')
因此,通過子類化Window
,可以確保調用on_draw
方法。
查看編程指南 ,了解pyglet事件系統如何工作的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.