Kivy Labels具有出色的属性markup
,该属性允许自定义字体属性,例如字体大小,粗体度等。所有这些仅在字体正式支持时才有效。但是,如果我没有的字体该怎么办?
因此,也许我不了解.ttf
字体如何工作。对于所有需要的文本类型,我都有几个.ttf
文件,但是我不知道如何将它们放在一起。
在这种情况下使用Google搜索时,大多数人会引起我对CSS的疑问,该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
等。因此,请尝试使其以类似的方式,也许它只是通过后缀识别斜体/粗体部分。