我想在一个单独的线程中运行pyglet,这样我就可以实现输入的用户界面而不被pyglet.app.run()
阻止。
import pyglet
class Window(pyglet.window.Window):
def __init__(self):
pyglet.window.Window.__init__(self, visible=True)
self.push_handlers(on_draw=self.on_draw)
self.im = pyglet.resource.image('image.jpg')
pyglet.app.run()
def on_draw(self):
self.clear()
import threading
class Thread(threading.Thread):
def run(self):
w = Window()
运行
Window()
工作正常。但是,运行
t = Thread()
t.start()
导致Segmentation fault (core dumped)
,这是由pyglet.resource.image()
的调用引起的。省略该呼叫消除了这个问题。
具体来说,是什么导致了这个问题,我该如何纠正呢?更一般地说,在允许其他程序执行的情况下,使用pyglet呈现窗口的推荐方法是什么?有更好的方法吗?