使用Pyglet插入文字on_mouse_press

时间:2018-07-14 11:35:21

标签: python opengl pyglet

我试图在单击鼠标后使用Pyglet将文本插入到窗口中。 下面的代码创建了窗口,当我单击屏幕时将打印,但未将文本添加到屏幕。

有什么想法吗?

谢谢。

class App extends Component {
  render() {
    return (
      <BrowserRouter>
        {/* ... */}
      </BrowserRouter>
    );
  }
}

1 个答案:

答案 0 :(得分:1)

我只是重新排列了一下代码,在窗口类中移动了鼠标按下事件。标签以无开始,当按下鼠标左键时,标签将成为标签对象。在draw方法中添加了一个简单的if检查,以便仅在标签不为None时才绘制标签。现在就可以了。

import pyglet
from pyglet.gl import *
from pyglet.window import mouse


class Drainage_Window(pyglet.window.Window):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_minimum_size(300, 300)

        self.label = None

    def on_mouse_press(self, x, y, button, modifiers):
        if button == mouse.LEFT:
            self.label = pyglet.text.Label('Click!',
                                  font_name='Times New Roman',
                                  font_size=16,
                                  x=x, y=y,
                                  anchor_x='center', anchor_y='center')

    def on_draw(self):
        self.clear()
        if self.label:
            self.label.draw()


if __name__ == '__main__':
    window = Drainage_Window(width=1920 // 4, height=1080//4,
                             caption="Drainage Network", resizable=True)
    glClearColor(0.7, 0.7, 1, 1)

    pyglet.app.run()