python - 自定义字体的 Kivy 标签标记

标签 python fonts kivy markup

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]'))

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

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

有没有办法以编程方式更改使用哪种字体来呈现粗体文本?如果没有,我可以采取什么步骤来更改字体?如何合并两种仅文本样式不同的字体?

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

最佳答案

有一个[font=<font .ttf file>]标记中的标签。基本上,所有内容都是 here应该可以用。我复制了ArialTimes 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 RomanArial文件例如一种表示正常,一种表示粗体,等等,唯一的区别是后缀 - arial.ttf , ariali.ttf , arialb.ttf , arialbi.ttf , times.ttf , timesi.ttf等等。因此,尝试以类似的方式进行操作,也许它只会通过后缀识别斜体/粗体部分。

关于python - 自定义字体的 Kivy 标签标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938706/

相关文章:

python - 如何在 Pandas 中自定义解析日期

python - PyQt4 QTableWidget : Set row width and column height to fill parent widget

python - 我的 pip 在 Windows 上坏了,我该如何修复?

java - 测量旋转字符串的像素高度Java

css - 在本地托管时不显示 Google 字体

html - 如何在CSS中结合粗体和斜体?

android - Kivy正确设置自己的图标

python - 如何使用 python 从 firebase 获取当前登录帐户的 UID

python - 请问真正的path.py 能站起来吗?

android - 在 Kivy 中正确使用指标(因此 GUI 可以很好地跨设备扩展)