• Saltar a la navegación principal
  • Saltar al contenido principal
LUISCALDEVILLA

LUISCALDEVILLA

El blog personal de Luis Caldevilla

  • Inicio
  • Sobre mi
  • Recursos
  • Contactar

10/05/2020 by lcaldevilla

Acceder a widget Kivy desde Python

Ejemplo de código que nos permite añadir a un widget kv desde Python.

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

# etiquetas
class Tag(Button):
    pass

class RootWidget(BoxLayout):	
     def btn_clk(self): 
        self.ids.cuerpo.add_widget(Tag())
        pass

# Clase principal
class KanbanApp(App):
    def build(self): 
        return RootWidget()

# crea la clase root
kanban=KanbanApp()

# Inicia la ejecución del software
if __name__ == '__main__':
    kanban.run()
# Interfaz principal
#:kivy 1.0.9
#:import utils kivy.utils

<Tag@Button>
    id:tagButton
    texto:self.texto
    font_size: self.height * 0.15
    text_size:self.width, None
    size_hint: None, None
    pos_hint:{"left":1,"top":1}
    #height: self.parent.height*0.2
    #width:self.parent.width*0.3
    background_color:utils.get_color_from_hex('#FF1800')
  
<RootWidget>:
    orientation:'vertical'
    canvas:
        Color:
            rgba: 1, 1, 1, 1
        Rectangle: #woohoo!!!
            size: self.size
            pos: self.pos
                
    # Cabecera aplicación
    BoxLayout:
        id:logoApp
        size_hint_y:None
        size_hint_y:.2
        # logo quoti
        Image:           
            source:'RECURSOS/kanbanLogo.png'           
            pos_hint:{"left":1,"top":1}
            size_hint:None, None
            height:self.parent.height

        Label:   
            id:texto  
            text:"Hospital Demo Quoti"
            font_size: self.height * 0.2
            #text_size:self.width, None
            color: 0,0,0,1

        Image:
            source:'RECURSOS/logoQuoti.png'
            pos_hint:{"right":1,"top":1}
            size_hint:None, None
            height:self.parent.height

    # representa los tags pedidos
    StackLayout:
        id: cuerpo
        orientation:'lr-tb'   
        padding:dp(10)                

    BoxLayout:
        orientation:"horizontal"
        size_hint_y:None
        size_hint_y:.2

        Button:
            text:"TAGS"
            on_press: root.btn_clk()
            Image:
                source:"RECURSOS/tag.png"                    
                height: self.parent.height/2
                center_y: self.parent.center_y
                center_x: self.parent.center_x-(self.parent.width/4)
                allow_stretch:True
                
        Button:
            text:"BUSCAR"
            Image:
                source:"RECURSOS/find.png"
                height: self.parent.height/2
                center_y: self.parent.center_y
                center_x: self.parent.center_x-(self.parent.width/4)
                allow_stretch:True
        Button:   
            text:"Pedidos"                    
            Image:
                source:"RECURSOS/pedidos.png"
                height: self.parent.height/2
                center_y: self.parent.center_y
                center_x: self.parent.center_x-(self.parent.width/4)
                allow_stretch:True

Publicado en: Programación, Python

Copyright © 2025 · Hello! Pro 3 en Genesis Framework · WordPress · Acceder