gpt4 book ai didi

python - 小狗 : using on_resize() event causes my text to disapear

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:06 25 4
gpt4 key购买 nike

当我使用 on_resize() 事件时,我的文本没有显示。更具体地说,问题来自“return pyglet.event.EVENT_HANDLED”语句。

这是一个简短的例子:

import pyglet;from pyglet.gl import *

window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)

@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED

@window.event
def on_draw():label.draw()

pyglet.app.run()

此代码会导致黑屏。我必须删除 on_resize 事件中的 return 语句才能使其正常工作。

我错过了什么吗?

最佳答案

好吧,我仍然不明白为什么上面的代码不起作用,但我终于找到了解决方案:

import pyglet;from pyglet.gl import *

window = pyglet.window.Window(resizable=True)
label = pyglet.text.Label('Hello, world', font_size=36)

# adding gluPerspective, don't know why and dont want to use it, but no choice...
gluPerspective(60., window.width / float(window.height), .1, 1000.)

@window.event
def on_resize(width, height):
glViewport(0,0,width,height);
return pyglet.event.EVENT_HANDLED

@window.event
def on_draw():
# adding a translation because of gluPerspective()
glPushMatrix()
glTranslatef(0, -200, -450)
label.draw()
glPopMatrix()

pyglet.app.run()

最后的精度:gluPerspective 不能在 on_resize() 事件中,因为在这种情况下,一旦用户调整窗口大小,文本就会消失...

关于python - 小狗 : using on_resize() event causes my text to disapear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40611680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com