python-3.x 是什么导致Pyglet中打开的窗口 Flink ?

pkwftd7m  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(104)

当我运行下面的代码时,我得到了GIF中的初始窗口,单击它会打开一个新窗口,但是新窗口中的形状在 Flink 。
我已经尝试清除两个窗口之前,可以看到在代码中,但我不知道是什么原因导致 Flink 。

import pyglet
from pyglet import shapes
from pyglet.window import mouse

window = pyglet.window.Window(960, 540)
window2 = pyglet.window.Window(960, 540, visible=False)
batch = pyglet.graphics.Batch()
batch2 = pyglet.graphics.Batch()

class window_one():
    
    circle = shapes.Circle(700, 150, 100, color=(50, 225, 30), batch=batch)
    square = shapes.Rectangle(200, 200, 200, 200, color=(55, 55, 255), batch=batch)
    rectangle = shapes.Rectangle(250, 300, 400, 200, color=(255, 22, 20), batch=batch)
    rectangle.opacity = 128
    rectangle.rotation = 33
    line2 = shapes.Line(150, 150, 444, 111, width=4, color=(200, 20, 20), batch=batch)


class window_two():
    line = shapes.Line(100, 100, 100, 200, width=19, batch=batch2)
    star = shapes.Star(800, 400, 60, 40, num_spikes=20, color=(255, 255, 0), batch=batch2)

    
@window.event
def on_draw():
    window.clear()
    window2.clear()
    batch.draw()

@window.event
def on_mouse_press(x,y,button, modifier):
    window2.set_visible(True)
    batch2.draw()

pyglet.app.run()

我尝试了上面的代码,并期待一个窗口出现在一个点击和形状显示“固体”。
我在MacBook上运行IDLE。

zqdjd7g9

zqdjd7g91#

每个pyglet.window都需要自己的on_drawon_mouse_press事件回调:

@window.event
def on_draw():
    window.clear()
    batch.draw()

@window2.event
def on_draw():
    window2.clear()
    batch2.draw()

@window.event
def on_mouse_press(x, y, button, modifier):
    window.set_visible(False)
    window2.set_visible(True)

@window2.event
def on_mouse_press(x, y, button, modifier):
    window.set_visible(True)
    window2.set_visible(False)

相关问题