Python 2.7 Python Pyglet鼠标事件处理

Python 2.7 Python Pyglet鼠标事件处理,python-2.7,mouse,pyglet,Python 2.7,Mouse,Pyglet,我的代码是这样的: @window.event() def on_mouse_press(e, d, button, modifiers): y=400 for i in temp2: if button == mouse.LEFT: pyglet.text.Label(i, font_name='Arial', font_size=24, x=50, y=y, b

我的代码是这样的:

@window.event()

def on_mouse_press(e, d, button, modifiers):

    y=400
    for i in temp2:
        if button == mouse.LEFT:
            pyglet.text.Label(i, font_name='Arial', font_size=24, x=50, y=y,
                                    batch=batch)
            y += -30
            break

我想在这里做的是,每次点击鼠标左键,数组中的元素都会显示在窗口中。但是,代码会同时打印所有内容。关于如何解决这个问题,你有什么想法吗?

你所描述的行为实际上是不可复制的。如果有什么区别的话,只会在创建的标签中显示数组temp2中的第一个项目,因为您在数组中迭代并生成标签,而不会对项目的位置设置任何条件。然后,在第一个项目由标签表示后立即中断。这就是你想要实现的吗?此外,在数组的迭代过程中,condition button==mouse.LEFT实际上没有改变,因此if语句和循环的嵌套也可以反转

关于decorator window.event:它的实现捕获了您使用它的方式,但它并不是真正要使用的方式。相反,如果函数名与事件名不同,则应使用不带括号的just@window.event,或指定要作为字符串参数@window.event处理的事件的性质

同样,我非常确定您发布的代码不会显示整个数组temp2,而只显示第一个元素。要获得更有用的答案,您应该详细说明数组的性质和内容,以及选择显示元素的方式