Kivy 标签有一个很棒的属性标记
,允许自定义字体属性,如字体大小、粗体等。所有这些仅在字体实际支持时才有效。但是如果我有一种不支持的字体该怎么办?
所以,也许我不明白 .ttf
字体是如何工作的。我有一些用于所有所需文本类型的 .ttf
文件,但我不知道如何将它们组合在一起。
谷歌搜索这个案例主要让我想到了关于 CSS 的问题,它可以很好地定制,哪种字体可以被视为粗体、斜体。
更多信息。这就是我要说的:
from kivy.base import runTouchApp
from kivy.uix.label import Label
runTouchApp(Label(font_name = 'my_font.ttf',
markup = True,
text = '[b]Bold[/b] and [i]italics[/i]'))
所以这些标记没有效果。然而,例如,文本着色标签确实有效,所以我很确定这是字体问题。
有没有办法以编程方式更改使用哪种字体来呈现粗体文本?如果没有,我可以采取什么步骤来更改字体?如何合并两种仅文本样式不同的字体?
This是我使用过的字体(常规版本,重命名为 my_font.ttf
)
最佳答案
有一个[font=<font .ttf file>]
标记中的标签。基本上,所有内容都是 here应该可以用。我复制了Arial
和Times New Roman
到我的桌面,我有这段代码,它成功地改变了字体。以类似的方式,我相信您甚至可以尝试使用 [i]
或[b]
里面[font]
标签。
from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
<Test>:
Label:
markup: True
text: "[font=Arial]test[/font][font=times]test[/font]"
''')
class Test(BoxLayout): pass
runTouchApp(Test())
但是我不确定如何合并字体。我什至找到了多个 Times New Roman
或Arial
文件例如一种表示正常,一种表示粗体,等等,唯一的区别是后缀 - arial.ttf
, ariali.ttf
, arialb.ttf
, arialbi.ttf
, times.ttf
, timesi.ttf
等等。因此,尝试以类似的方式进行操作,也许它只会通过后缀识别斜体/粗体部分。
关于python - 自定义字体的 Kivy 标签标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938706/