pyglet没有按预期在MacOS中运行

时间:2018-02-26 07:59:25

标签: python macos pyglet pyopengl

我正在使用pyglet实现简单的文本翻译。如果config中未添加window = pyglet.window.Window(),则效果非常好。但是,在第8行添加config后代码才会运行。我正在使用Mac High Sierra。

import pyglet

platform = pyglet.window.get_platform()
display = platform.get_default_display()
screen = display.get_default_screen()
template = pyglet.gl.Config()
config = screen.get_best_config(template)
window = pyglet.window.Window(config=config)
label = pyglet.text.Label('Hello, world', x=window.width//2, y=window.height//2,
                          anchor_x='center', anchor_y='center')

def update(dt):
  #print(dt) # time elapsed since last time we were called
  label.x += 1
  label.y += 1

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

pyglet.clock.schedule(update) # cause a timed event as fast as you can!
pyglet.app.run()

1 个答案:

答案 0 :(得分:0)

尝试从窗口配置中定义配置,试试这个:

import pyglet
window = pyglet.window.Window()
context = window.context
#config = context.config
platform = pyglet.window.get_platform()
display = platform.get_default_display()
screen = display.get_default_screen()
config = screen.get_best_config()#if you need best config although if you add template as an argument it forms a deadlock.
template = pyglet.gl.Config(config=config)
#config = screen.get_best_config(template)
label = pyglet.text.Label('Hello, world', x=window.width//2, y=window.height//2,
                          anchor_x='center', anchor_y='center')

def update(dt):
  #print(dt) # time elapsed since last time we were called
  label.x += 1
  label.y += 1

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

pyglet.clock.schedule(update) # cause a timed event as fast as you can!
pyglet.app.run()