Configuración de tamaño de fuente global en Kivy

¿Cuál es la forma preferida, ya sea a través de python o el lenguaje kivy, para establecer el tamaño de fuente global (es decir, para botones y tags) en kivy?

¿Cuál es una buena manera de cambiar dinámicamente la configuración del tamaño de fuente global en proporción al tamaño de la ventana?

Use una plantilla para crear su etiqueta personalizada:

from kivy.app import App from kivy.lang import Builder from kivy.uix.widget import Widget from kivy.properties import ObjectProperty, NumericProperty kv = ''' [MyLabel@Label]: text: ctx.text if hasattr(ctx, 'text') else '' font_size: 24 markup: True : id: f_wid BoxLayout: size: f_wid.size orientation: 'vertical' MyLabel: text: "Hello world 1" MyLabel: text: "Hello world 2" MyLabel: text: "Hello world 3" MyLabel: text: "Hello world 4" MyLabel: text: "Hello world 1" MyLabel: text: "Hello world 2" MyLabel: text: "Hello world 3" MyLabel: text: "Hello world 4" ''' Builder.load_string(kv) import kivy kivy.require('1.7.1') # replace with your current kivy version ! from kivy.app import App from kivy.uix.widget import Widget class MyWidget(Widget): pass class MyApp(App): def build(self): return MyWidget() if __name__ == '__main__': MyApp().run() 

Para que el tamaño de fuente dependa del tamaño de la pantalla, en lugar de usar valores fijos, self.heigh usando self.heigh :

 [MyLabel@Label]: text: ctx.text if hasattr(ctx, 'text') else '' font_size: self.height/2 markup: True 

ACTUALIZAR

El enfoque alternativo es configurar la variable utilizando la syntax de #: set:

 kv = ''' #:set default_font_size "36sp" : id: f_wid BoxLayout: size: f_wid.size orientation: 'vertical' Label: text: "Hello world 1" font_size: default_font_size Label: text: "Hello world 2" font_size: default_font_size Label: text: "Hello world 3" font_size: default_font_size Label: text: "Hello world 4" font_size: default_font_size Label: text: "Hello world 1" font_size: default_font_size Label: text: "Hello world 2" font_size: default_font_size Label: text: "Hello world 3" font_size: default_font_size Label: text: "Hello world 4" font_size: default_font_size ''' Builder.load_string(kv) 
  

Establecerá el nombre de la fuente y el tamaño de la fuente globalmente para cualquier widget que use Label como su base (TextInput y algunos otros widgets no).

Sé que esta pregunta es antigua pero usted preguntó acerca de “cambiar dinámicamente la configuración del tamaño de fuente global en proporción al tamaño de la ventana”

Para un problema similar he creado AutoSizedLabel

 class TestApp(App): def build(self): return AutoSizedLabel(text="crazy stuff", ratio=0.5) 

Es pip instalable por:

 pip install kivyoav