自定义字体的Kivy标签标记

2024-03-29 12:42:34 发布

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

Kivy标签有一个很好的属性markup,它允许自定义字体属性,如字体大小、粗体等。所有这些只有在字体acutally支持时才起作用。但是如果我有一个字体却没有呢?
所以,也许我不明白.ttf字体是如何工作的。我有一些.ttf文件,用于所有需要的文本类型,但我不知道如何将它们组合在一起。
在谷歌上搜索这个案例主要是让我对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]'))

运行此代码,我得到以下输出:
enter image description here

所以这些标记没有效果。然而,例如,文本颜色标记确实有效,所以我很确定这是字体问题。在

有没有一种方法可以通过编程改变,哪种字体将用于呈现粗体文本?如果没有,我可以采取什么步骤来改变字体?如何合并只在文字样式上不同的两种字体?在

This是我使用过的字体(常规版本,重命名为my_font.ttf


Tags: from标记文本import属性my字体ttf
1条回答
网友
1楼 · 发布于 2024-03-29 12:42:34

标记中有一个[font=<font .ttf file>]标记。基本上,here的所有内容都应该是可用的。我把Arial和{}复制到我的桌面上,在那里我有这段代码,它成功地改变了字体。以类似的方式,我确信您甚至可以尝试在[font]标记内使用[i]或{}。在

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 RomanArial文件,例如,一个代表普通,一个代表粗体,等等,唯一的区别是后缀-arial.ttfariali.ttfarialb.ttfarialbi.ttftimes.ttftimesi.ttf,等等。所以,试着用类似的方式,也许它只会通过后缀来识别斜体/粗体部分。在

相关问题 更多 >