Python | Widget giratorio en Kivy usando el archivo .kv

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 spinner
4) import Floatlayout(according to need)
5) import window(optional)
6) Set minimum version(optional)
7) Create Layout class:
      define the clicked function in it
8) Create App class
9) create .kv file (name same as the app class):
        1) create Spinner
        2) create callback
        3) And many more styling as needed
10) return Layout/widget/Class(according to requirement)
11) Run an instance of the class

A continuaci贸n se muestra la implementaci贸n:

En el siguiente c贸digo, hemos creado el control giratorio y hemos hecho el tama帽o y el posicionamiento, y tambi茅n hemos adjuntado la devoluci贸n de llamada a los valores.

Archivo .py:

Python3

# Sample spinner app in kivy using .kv file
聽聽
# 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')
聽聽
# 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 consists the floatlayout聽
# to work with FloatLayout first聽
# you have to import it聽
from kivy.uix.floatlayout import FloatLayout
聽聽
# Here for providing colour to the background
from kivy.core.window import Window
聽聽
聽聽
# create LayoutClass
class SampBoxLayout(FloatLayout):
聽聽聽聽# For Spinner defining spinner clicked function
聽聽聽聽def spinner_clicked(self, value):
聽聽聽聽聽聽聽聽print("Language selected is " + value)
聽聽聽
聽聽
# # Make an App by deriving from the App class
class SampleApp(App):
聽聽聽聽def build(self):
聽聽聽
聽聽聽聽聽聽聽聽# Set the background color for the window
聽聽聽聽聽聽聽聽Window.clearcolor = (0.555, 0.261, .888, 0.5)
聽聽聽聽聽聽聽聽return SampBoxLayout()
聽聽
# create object for the Appclass
root = SampleApp()
# run the class
root.run()
聽聽


archivo .kv
del c贸digo:

Python3

# .kv file implementation of the .py file
聽聽
# Creating the Layout i.e root of the Layout class
<SampBoxLayout>:
聽聽
聽聽聽聽# creating the spinner
聽聽聽聽Spinner:
聽聽聽聽聽聽聽聽# Assigning id聽
聽聽聽聽聽聽聽聽id: spinner_id
聽聽
聽聽聽聽聽聽聽聽# Callback聽
聽聽聽聽聽聽聽聽on_text: root.spinner_clicked(spinner_id.text)
聽聽
聽聽聽聽聽聽聽聽# initially text on spinner
聽聽聽聽聽聽聽聽text: "Python"
聽聽
聽聽聽聽聽聽聽聽# total values on spinner
聽聽聽聽聽聽聽聽values: ["Python", "Java", "C++", "C", "C#", "PHP"]
聽聽
聽聽聽聽聽聽聽聽# declaring size of the spinner
聽聽聽聽聽聽聽聽# and the position of it
聽聽聽聽聽聽聽聽size_hint: None, None
聽聽聽聽聽聽聽聽size: 200, 50
聽聽聽聽聽聽聽聽pos_hint:{'center_x':.5, 'top': 1}

Producci贸n:

Imagen 1:

Imagen 2:

Imagen 3:

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 *