Python | Widget giratorio 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 .

Widget giratorio:

Para trabajar con spinner debes tener que importar:

from kivy.uix.spinner import Spinner

Spinner es un widget que proporciona una forma r谩pida de seleccionar un valor de un conjunto. En el estado predeterminado, una rueda muestra su valor actualmente seleccionado. Al tocar la rueda giratoria, se muestra un men煤 desplegable con todos los dem谩s valores disponibles entre los que el usuario puede seleccionar uno nuevo.
Al igual que un cuadro combinado, un objeto giratorio puede tener varios valores y se puede seleccionar uno de los valores.
Se puede adjuntar una devoluci贸n de llamada al objeto giratorio para recibir notificaciones sobre la selecci贸n de un valor del objeto giratorio.

Basic Approach :

1) import kivy
2) import kivyApp
3) import Label
4) import Spinner
5) import Floatlayout
6) Set minimum version(optional)
7) create App class:
        1) Create the spinner
        2) Attach the labels to spinners
        3) Attach a callback also 
8) return Layout/widget/Class(according to requirement)
9) Run an instance of the class

Implementaci贸n de un spinner simple:

# Sample spinner app in kivy to change the
# kivy default settings we use this module config
from kivy.config import Config
聽聽
# 0 being off 1 being on as in true / false
# you can use 0 or 1 && True or False
Config.set('graphics', 'resizable', True)
聽聽
# Program to Show how to create a switch
# 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')
聽聽
# The Label widget is for rendering text.聽
from kivy.uix.label import Label
聽聽
# Spinner is a widget that provides a
# quick way to select one value from a set.
# like a dropdown list
from kivy.uix.spinner import Spinner
聽聽
# module consist the floatlayout聽
# to work with FloatLayout first聽
# you have to import it聽
from kivy.uix.floatlayout import FloatLayout
聽聽
聽聽
# Make an App by deriving from the App class
class SpinnerExample(App):
聽聽
聽聽聽聽# define build聽
聽聽聽聽def build(self):
聽聽
聽聽聽聽聽聽聽聽# creating floatlayout
聽聽聽聽聽聽聽聽layout = FloatLayout()
聽聽
聽聽聽聽聽聽聽聽# creating the spinner
聽聽聽聽聽聽聽聽# configure spinner object and add to layout
聽聽聽聽聽聽聽聽self.spinnerObject = Spinner(text ="Python",
聽聽聽聽聽聽聽聽聽聽聽聽聽values =("Python", "Java", "C++", "C", "C#", "PHP"),
聽聽聽聽聽聽聽聽聽聽聽聽聽background_color =(0.784, 0.443, 0.216, 1))聽
聽聽
聽聽聽聽聽聽聽聽self.spinnerObject.size_hint = (0.3, 0.2)
聽聽
聽聽聽聽聽聽聽聽self.spinnerObject.pos_hint ={'x': .35, 'y':.75}
聽聽
聽聽聽聽聽聽聽聽layout.add_widget(self.spinnerObject)
聽聽
聽聽聽聽聽聽聽聽# return the layout
聽聽聽聽聽聽聽聽return layout;
聽聽
聽聽
# Run the app
if __name__ == '__main__':
聽聽聽聽SpinnerExample().run()聽聽聽聽聽聽

Producci贸n:

Imagen 1:

Imagen 2:

Ahora, si tenemos que decirle al usuario cada vez que se selecciona qu茅 elemento de una lista, mostraremos una etiqueta justo al lado de la rueda giratoria que informa sobre la etiqueta seleccionada. Adem谩s, imprimiremos el valor y el texto de la ruleta.

A continuaci贸n se muestra la implementaci贸n:

# Sample spinner app in kivy to change the
# kivy default settings we use this module config
from kivy.config import Config
聽聽
# 0 being off 1 being on as in true / false
# you can use 0 or 1 && True or False
Config.set('graphics', 'resizable', True)
聽聽
# Program to Show how to create a switch
# 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')
聽聽
# The Label widget is for rendering text.聽
from kivy.uix.label import Label
聽聽
# Spinner is a widget that provides a
# quick way to select one value from a set.
# like a dropdown list
from kivy.uix.spinner import Spinner
聽聽
# module consist the floatlayout聽
# to work with FloatLayout first聽
# you have to import it聽
from kivy.uix.floatlayout import FloatLayout
聽聽
聽聽
# Make an App by deriving from the App class
class SpinnerExample(App):
聽聽
聽聽聽聽# define build聽
聽聽聽聽def build(self):
聽聽
聽聽聽聽聽聽聽聽# creating floatlayout
聽聽聽聽聽聽聽聽layout = FloatLayout()
聽聽
聽聽聽聽聽聽聽聽# creating the spinner
聽聽聽聽聽聽聽聽# configure spinner object and add to layout
聽聽聽聽聽聽聽聽self.spinnerObject = Spinner(text ="Python",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽values =("Python", "Java", "C++", "C", "C#", "PHP"),
聽聽聽聽聽聽聽聽聽聽聽聽聽聽background_color =(0.784, 0.443, 0.216, 1))聽
聽聽
聽聽聽聽聽聽聽聽self.spinnerObject.size_hint = (0.3, 0.2)
聽聽
聽聽聽聽聽聽聽聽self.spinnerObject.pos_hint ={'x': .35, 'y':.75}
聽聽
聽聽聽聽聽聽聽聽layout.add_widget(self.spinnerObject)
聽聽聽聽聽聽聽聽self.spinnerObject.bind(text = self.on_spinner_select)
聽聽
聽聽聽聽聽聽聽聽# It changes the label info as well
聽聽聽聽聽聽聽聽# add a label displaying the selection from the spinner
聽聽聽聽聽聽聽聽self.spinnerSelection = Label(text ="Selected value in spinner is: %s"聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽%self.spinnerObject.text)
聽聽
聽聽聽聽聽聽聽聽layout.add_widget(self.spinnerSelection)
聽聽聽聽聽聽聽聽self.spinnerSelection.pos_hint ={'x': .1, 'y':.3}
聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽return layout;
聽聽
聽聽聽聽# call back for the selection in spinner object
聽聽聽聽def on_spinner_select(self, spinner, text):
聽聽聽聽聽聽聽聽self.spinnerSelection.text = "Selected value in spinner is: %s"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽%self.spinnerObject.text)
聽聽
聽聽聽聽聽聽聽聽print('The spinner', spinner, 'have text', text)
聽聽聽聽聽聽
聽聽
# Run the app
if __name__ == '__main__':
聽聽聽聽SpinnerExample().run()聽聽聽聽聽聽

Producci贸n:

Imagen 1:

Imagen 2:

A continuaci贸n se muestra la salida en video para obtener una mejor comprensi贸n:

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 *