Kivy 1.10.1如何使用选项设置更改字体的大小?

时间:2019-02-19 10:25:50

标签: python python-3.x kivy kivy-language

我当前正在尝试创建一个选项菜单,该菜单可能会更改应用程序中特定文本块的文本大小。我基本上希望有三个不同的选项供用户选择。

我尝试修改kivy-examples中的代码,该示例使您可以使用数字值来更改font_size,而可以使用选项来更改字体大小。但是我无法使其正常工作,所以有点卡住了。

这是我的应用程序类

class MainApp(App):

def build(self):
    self.settings_cls = SettingsWithTabbedPanel

    root = Builder.load_file('main.kv')
    label = root.ids.label
    label.font_size = float(self.config.get('example', 'typesize'))
    return root
def build_config(self, config):
    config.setdefaults('example', {
        'typesize': 'Default'})
def build_settings(self, settings):
    settings.add_json_panel('Settings', self.config, data=settings_json)

def on_config_change(self,config,section,key,value):

    Logger.info("main.py: App.on_config_change: {0}, {1}, {2}, {3}".format(
        config, section, key, value))

    if section == 'example':
        if key == 'typesize':
            if value == 'Small':
                self.root.ids.label.font_size = '12pt'

            elif value == 'Default':
                self.root.ids.label.font_size = '20pt'

            elif value == 'Large':
                self.root.ids.label.font_size = '40pt' 
def close_settings(self, settings=None):
    """
    The settings panel has been closed.
    """
    Logger.info("main.py: App.close_settings: {0}".format(settings))
    super(MyApp, self).close_settings(settings)

这是我尝试使用的一些奇特的语言(在另一个文档中)。 (缩进在这里看起来有点奇怪,但是当我将其复制到此处时有点不客气)

BoxLayout:
    orientation:'horizontal'
    BoxLayout:
        size_hint_x: .5
        orientation:'horizontal'
        ScrollView:
            Label:
                id:label
                text: ' some really really long string ' * 100
                text_size: self.width, None
                size_hint_y: None
                height: self.texture_size[1]

这是我的json代码(同样在单独的文档中),因为我可能想创建更多设置。

import json

settings_json = json.dumps([

    {'type': 'options',
     'title': 'Text size',
     'desc': 'Change the size of text in the application',
     'section': 'example',
     'key': 'typesize',
     'options': ['Small', 'Default', 'Large']}])

当我尝试立即运行程序时,崩溃或无法启动。

0 个答案:

没有答案