0

我有一个属于 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 还很陌生。正如我所说,主要问题是当我调整窗口大小时,它实际上并没有改变任何东西,除非我按下窗口上改变位置的按钮之一。

4

1 回答 1

0

如果不知道应用程序中发生了什么,很难准确回答,但是,Pyglet 事件循环只会为无效的窗口调度 on_draw,因此您可以尝试添加

window.invalid = True

在 on_resize 中,看看是否有帮助。

此外,您可以在 Pyglet 源代码中找到有关 window.invalid 的更多信息: https ://code.google.com/p/pyglet/source/browse/pyglet/window/__init__.py#362

于 2013-08-19T18:49:31.400 回答