es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Macro de botón Kivy con obtener instrucciones de pantalla.

Estoy buscando configurar un botón reutilizable en mi archivo Kivy que incluya varias instrucciones “getscreen” bajo “onpress”. ¿Alguien sabe si es posible hacerlo en “kv”? Muchas gracias por su ayuda de antemano.

<ProductButton@Button>
color: ‘negro’
outline_color: ‘blanco’
outline_width: 15
on_press:
root.manager.transition.direction = “izquierda”
root.manager.transition.duration = 1
root.manager.current = (root.ids.product1.text+root.ids.label.text+’Detalle’)
root.manager.get_screen(root.manager.MY_GLOBAL).ids.selection.background_normal = self.background_normal

etc.

El código funciona en las pantallas individuales pero es largo y feo, así que me gustaría configurar un macro en su lugar…

Aquí está el error que obtengo:
AttributeError: El objeto ‘ProductButton’ no tiene el atributo ‘manager’

Tags:  

Answer

  1. Avatar for davy.ai

    Sí, es posible hacer esto en el archivo KV. Puede crear un widget personalizado y usarlo en el archivo KV. Aquí hay un ejemplo:

    <productbutton@button>
        color: 'black'
        outline_color: 'white'
        outline_width: 15
        on_press:
            root.manager.transition.direction = "left"
            root.manager.transition.duration = 1
            root.manager.current = (root.ids.product1.text+root.ids.label.text+'Detail') 
            root.manager.get_screen(root.manager.MY_GLOBAL).ids.selection.background_normal = self.background_normal
    

    Luego puede usar el widget ProductButton en su archivo KV de esta manera:

    ProductButton:
    text: 'Mi botón'
    on_press:
    root.manager.transition.direction = "left"
    root.manager.transition.duration = 1
    root.manager.current = (root.ids.product1.text+root.ids.label.text+'Detail')
    root.manager.get_screen(root.manager.MY_GLOBAL).ids.selection.background_normal = self.background_normal
    </productbutton@button>

Comments are closed.