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.
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