Carga del interface
Nota importante:
El ejemplo dado no funciona, pero dentro tiene el ejemplo oficial de Kivy container, este si funciona y se ve perfectamente lo que queremos explicar.
Carga automática
Si queremos que nuestra app cargue automáticamente nuestro fichero kv, debemos de seguir la siguiente regla:
- Supongamos que nuestra app se llama EjemploApp (recordemos que debe acabar con el sufijo -App).
- El fichero kv debe de llamarse ejemplo.kv, es decir, todo minúscula, sin sufijo -App y con extensión kv
- El fichero python puede llamarse como se quiera, por ejemplo fichero.py, es absolutamente indiferente en esto.
Carga con builder
Kivy posee un módulo para cargar la vista llamado Builder. Este es el que hace la carga automática si seguimos el convenio anterior, pero sino, permite dos posibilidades para cargar una vista: desde un fichero o desde un string.
Para usar el módulo primero hay que importar con
from kivy.lang import Builder
Carga desde fichero
Para cargar un fichero kv con el nombre que nos plazca, lo que debemos es de invocar la función load_file. Por ejemplo, si mi fichero kv se llama mi_pantalla.kv haría lo siguiente
pantalla = Builder.load_file('mi_pantalla.kv')
class MainApp(App):
def build(self):
return pantalla
Cargar desde string
Si en vez de usar un fichero kv, queremos definir su contenido directamente en un string, podemos invocar esa pantalla con la función load_string
pantalla = Builder.load_string('''
<Label>:
text: 'Pantalla generada desde string'
''')
class MainApp(App):
def build(self):
return pantalla