【问题标题】:Pyglet window will not redraw on resizePyglet 窗口不会在调整大小时重绘
【发布时间】:2013-08-20 02:49:31
【问题描述】:

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

【问题讨论】:

    标签: python-2.7 pyglet


    【解决方案1】:

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

    window.invalid = True
    

    在 on_resize 中看看是否有帮助。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多