Python | Lista desplegable en kivy – Part 1

Kivy es una herramienta GUI independiente de la plataforma en Python. Como se puede ejecutar en Android, IOS, Linux y Windows, etc. Básicamente se usa para desarrollar la aplicación de Android, pero eso no significa que no se pueda usar en aplicaciones de escritorio.

????????? Tutorial de Kivy: aprenda Kivy con ejemplos .

La lista desplegable

Se puede usar una lista desplegable con widgets personalizados. Le permite mostrar una lista de widgets debajo de un widget mostrado. A diferencia de otros kits de herramientas, la lista de widgets puede contener cualquier tipo de widget: botones simples, imágenes, etc. El posicionamiento de la lista desplegable es completamente automático: siempre intentaremos colocar la lista desplegable de manera que el usuario pueda seleccionar un elemento de la lista. Algunos puntos importantes a tener en cuenta al hacer una lista desplegable:

  • Al agregar widgets, debemos especificar la altura manualmente (deshabilitando size_hint_y) para que el menú desplegable pueda calcular el área que necesita.
  • Todos los botones dentro de la lista desplegable activarán el método desplegable DropDown.select(). Después de ser llamado, el texto del botón principal mostrará la selección del menú desplegable.

Para trabajar con este widget debes importar: from kivy.uix.dropdown import DropDown

Basic Approach:
1) import kivy
2) import kivy App
3) import dropdown list
4) import button
5) set minimum version(optional)
6) import runTouchApp
7) Create dropdown
8) create runtouchApp method 
   which takes widget as an argument
   to run the App

Implementación del Enfoque – 

Python3

# Program to explain how to create drop-down in kivy
    
# import kivy module   
import kivy 
      
# base Class of your App inherits from the App class.   
# app:always refers to the instance of your application  
from kivy.app import App
    
# this restrict the kivy version i.e 
# below this kivy version you cannot 
# use the app or software 
kivy.require('1.9.0')
    
# Importing Drop-down from the module to use in the program
from kivy.uix.dropdown import DropDown
 
# The Button is a Label with associated actions
# that are triggered when the button is pressed
# (or released after a click / touch)
from kivy.uix.button import Button
 
# another way used to run kivy app
from kivy.base import runTouchApp
 
# create a dropdown with 10 buttons
dropdown = DropDown()
for index in range(10):
 
    # Adding button in drop down list
    btn = Button(text ='Value % d' % index, size_hint_y = None, height = 40)
 
    # binding the button to show the text when selected
    btn.bind(on_release = lambda btn: dropdown.select(btn.text))
 
    # then add the button inside the dropdown
    dropdown.add_widget(btn)
 
# create a big main button
mainbutton = Button(text ='Hello', size_hint =(None, None), pos =(350, 300))
 
# show the dropdown menu when the main button is released
# note: all the bind() calls pass the instance of the caller
# (here, the mainbutton instance) as the first argument of the callback
# (here, dropdown.open.).
mainbutton.bind(on_release = dropdown.open)
 
# one last thing, listen for the selection in the
# dropdown list and assign the data to the button text.
dropdown.bind(on_select = lambda instance, x: setattr(mainbutton, 'text', x))
 
# runtouchApp:
# If you pass only a widget in runtouchApp(), a Window will
# be created and your widget will be added to the window
# as the root widget.
runTouchApp(mainbutton)

Salida: Imagen 1: Imagen 2:

Publicación traducida automáticamente

Artículo escrito por YashKhandelwal8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *