官方 pyglet 文档的“显示文本”部分(https://pyglet.readthedocs.io/en/latest/programming_guide/text.html)给出了如何使用 HTMLLabel() 的示例。该示例适用于 pyglet 1.5.28,但不适用于 pyglet 2.0.15。奇怪的是,HTMLLabel() 不会引发错误——例如“pyglet.text 没有方法 HTMLLabel()”(或类似的东西),通常情况就是这样——即它被 v2.0 接受,只是 pyglet 窗口中不显示任何内容。 下面是一个简单但完全可行的代码,我在其中添加了运行该示例所需的任何内容:
import pyglet
from pyglet.gl import *
window = pyglet.window.Window(200,200)
glClearColor(1, 1, 1, 1)
# The following 4 lines are copy-pasted from the document
label = pyglet.text.HTMLLabel(
'<font face="Times New Roman" size="4">Hello, <i>world</i></font>',
x=window.width//2, y=window.height//2,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
pyglet.app.run()
这是 v1.15 产生的输出:
使用 v2.0 运行相同的代码会显示一个空窗口。
我在网上进行了广泛的搜索,但找不到解决方案,甚至找不到问题所在。甚至不近。 所以,我希望这里有人确实有一个在 v2.0 中使用 HTML 文本作为标签(或以任何其他方式)的解决方案。