如何使 HTMLLabel() 在 Pyglet 2.0 中工作?

问题描述 投票:0回答:1

官方 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 产生的输出:

enter image description here

使用 v2.0 运行相同的代码会显示一个空窗口。

我在网上进行了广泛的搜索,但找不到解决方案,甚至找不到问题所在。甚至不近。 所以,我希望这里有人确实有一个在 v2.0 中使用 HTML 文本作为标签(或以任何其他方式)的解决方案。

python-3.x pyglet
1个回答
0
投票

这看起来像是 pyglet 中的一个错误,在版本 2.0.12中引入。

如果您降级到版本2.0.10,您的代码将显示 HTML 文本:

pip install --force-reinstall -v "pyglet==2.0.10"

您应该创建一个 错误报告

© www.soinside.com 2019 - 2024. All rights reserved.