如何可靠地获得kivy中标记标签的大小?

2024-09-30 01:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

如果不使用markup=True,则可以使用:

from kivy.core.text import Label as CoreLabel
lbl = CoreLabel(text=text, font_size=font_size)
lbl.refresh()
size_needed = lbl.texture.size # Need this size to display the label

但一旦我开始使用标记,它就不起作用了。主要的问题是,[font=/path/to/font.ttf]Test[/font]之类的东西被解释为纯文本(而不是标记),并导致宽度值远远高于其应有值。我还尝试使用CoreLabel的标记版本:

^{pr2}$

但由于某些原因,它也忽略了标记语言,并像纯文本一样计算大小。例如,一个20像素宽的简单字体图标有texture.size[0]=1218。我也尝试过创建一个普通的kivy.uix.label.Label,但它总是有{},直到我真正将它添加到一个窗口并呈现它。但我不想实际显示标签。我只想知道它需要多大尺寸。在

背景:我需要创建工具提示和对话框来调整它们的大小以适应它们的内容。大多数内容都是标签中的标记文本,但有时还会添加其他小内容(关闭按钮或额外图标)。为此,我需要在显示内容之前确定内容所占用的大小。在


Tags: totext标记文本内容size标签label

热门问题