简体   繁体   English

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

[英]Python : font_name and bold property not working together in kivy

I am using python-2.7 and kivy . 我正在使用python-2.7kivy If i use font_name and bold property together then bold property doesn't work.If i remove font_name property then bold property works.Anyone tell me where i am making mistake? 如果我一起使用font_namebold属性,那么bold属性不起作用。如果我删除font_name属性,则bold属性起作用。有人告诉我我在哪里弄错吗?

test.py 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 test.kv

User:
    BoxLayout:

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

It does not work because the given font_name does not contain Verdana bold. 它不起作用,因为给定的font_name不包含Verdana粗体。

Solution 1 解决方案1

Replace 更换

font_name: 'Verdana'

with

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

Solution 2 解决方案2

Use config to override the default fonts, Roboto 使用config覆盖默认字体Roboto

kv file KV文件

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

Python code 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)

Download Verdana Fonts 下载Verdana字体

The Verdana fonts that is usedin this example is from AllBestFonts 本示例中使用的Verdana字体来自AllBestFonts

Output 产量

Img01-解决方案1 Img02-解决方案2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM