我有一个子类,它是pyglet.window.Window的子类,我需要它是一个可调整大小的窗口。我想出了如何调整它的大小,但是当我实际调整大小时,我需要让它重绘屏幕上的所有内容。这是我到目前为止所做的:
if __name__ == '__main__':
window = Application()
@window.event()
def on_resize(x,y):
window.label.x = window.WindowSize[0]/2
window.label.y = window.WindowSize[1]*15/16
@window.event()
def on_draw():
window.clear()
window.label.draw()
for control in window.controls:
control.draw()
pyglet.app.run()
所以我们创建窗口,然后有两个窗口事件。我希望我做得对 - 我是pyglet的新手。正如我所说,主要的问题是,当我调整窗口大小时,它实际上并没有改变任何东西,除非我按下窗口上的一个按钮来改变位置。
答案 0 :(得分:0)
在不知道Application中发生了什么的情况下很难准确回答,但是,Pyglet事件循环只会为无效的窗口调度on_draw,因此你可以尝试添加
window.invalid = True
在on_resize中,看看是否有帮助。
此外,您可以在Pyglet源中找到有关window.invalid的更多信息: https://code.google.com/p/pyglet/source/browse/pyglet/window/__init__.py#362