Palabras reservadas

En los ficheros kv tenemos una serie de palabras reservadas que nos sirven referenciar distintos componentes o entidades:

  • app
  • root
  • self
  • id / ids
  • args

app

Esta palabra se usa para referenciar a la app que está funcionando. Por ejemplo si quisieramos ver el nombre de la app

Label:
    text: app.name

Que sería equivalente a hacer en Python

Label(text=kivy.app.App.get_running_app())

root

Con esto hacemos referencia al widget root. Por ejemplo vamos a crear una propiedad especial en el widget root y la vamos a usar en un hijo

<MiWidget>:
    especial: 'Texto del root'
    Button:
        text: root.custom

self

Para poder referencias al propio widget usamos la palabra self. Aquí podemos ver un ejemplo del estado de un botón

Button:
    text: self.state

id / ids

Para poder referenciar un widget desde otro o desde Python, dentro del kv usamos la propiedad id. En este ejemplo vamos a usar dos botones, poniendo en el botón 2 el estado del botón 1 desde kv

<MiWidget>:
    Button:
        id: boton1
    Button:
        id: boton2
        text: 'El estado del botón 1 es %s' % boton1.state

y desde Python vamos a ponerle el estado del botón 2 al botón 1 usando ids. En este caso podemos usar ids['boton1'] para invocarlo o ids.boton1, las dos formas son igual de válidas.

mi_widget = MiWidget()

mi_widget.ids['boton1'].text = mi_widget.ids.boton2.state

args

Por último queda args, que solo está disponible en las propiedades callbacks on_<action>. Estas propiedas se usan para cuando hay un evento, por ejemplo cuando se aprieta un botón, cuando está en primer plano (focus), etc. En el ejemplo

TextInput:
    on_focus: self.insert_text('Focus' if args[1] else 'No focus')

results matching ""

    No results matching ""