Python:font_name和粗体属性无法在kivy中一起使用

时间:2018-09-13 12:47:48

标签: python python-3.x kivy

我正在使用python-2.7kivy。如果我同时使用font_namebold属性,则粗体属性不起作用。如果删除font_name属性,则bold属性有效。任何人都告诉我我在哪里犯错?

test.py

from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.core.window import Window

class User(Screen):
    pass


class Test(App):

    def build(self):
        return self.root


if __name__ == '__main__':
    Test().run()

test.kv

User:
    BoxLayout:

        Button:
            font_name: 'Verdana'
            bold : True
            text: 'Font name and bold not working together'

1 个答案:

答案 0 :(得分:2)

它不起作用,因为给定的 font_name 不包含Verdana粗体。

解决方案1 ​​

替换

font_name: 'Verdana'

使用

font_name: './data/fonts/Verdana/verdanab.ttf'

解决方案2

使用 config 覆盖默认字体Roboto

kv文件

Button:
    bold : True
    text: 'Font name and bold not working together'

Python代码

from kivy.config import Config

default_font = Config.get('kivy', 'default_font')
print(default_font)

fonts = [
    'Verdana', './data/fonts/Verdana/verdana.ttf',
    './data/fonts/Verdana/verdanai.ttf',
    './data/fonts/Verdana/verdanab.ttf',
    './data/fonts/Verdana/verdanaz.ttf'
]
Config.set('kivy', 'default_font', fonts)
default_font = Config.get('kivy', 'default_font')
print(default_font)

下载Verdana字体

此示例中使用的Verdana字体来自AllBestFonts

输出

Img01 - Solution 1 Img02 - Solution 2