Change language

Python | Spinner widget in Kivy using .kv file

| | |

Kivy — it is a platform independent GUI tool in Python. Since it can run on Android, IOS, Linux, Windows, etc. It is mainly used to develop Android application, but that does not mean that it cannot be used in desktop applications.

Spinner widget:

To work with a spinner, you need to import:

 from kivy.uix.spinner import Spinner 

Spinner — it is a widget that provides a quick way to select one value from a set. In the default state, the counter shows its currently selected value. Touching the counter displays a drop-down menu with all other available values ​​from which the user can select a new one. 
As with the combo box, the counter object can have multiple values, and you can select one of the values. 
A callback can be attached to the spinner object to receive notifications about the selection of a value from the spinner object.

  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 

Below is the implementation:

In the code below, we created a spinner, performed resizing and positioning, and attached a callback to the values.

.py file:

# Sample Spinn application er in KIVY using a .kv file

# to change kivy settings by by default we use this module config

from kivy.config import Config

# 0 disabled 1 enabled as true / false
# You can use 0 or 1 & amp; & amp; True or False

Config. set ( ’graphics’ , ’ resizable’ , True )

# Program to show how to create a radio button
# import nodded module

import kivy 

# Your application base class inherits from the application class.
# app: always refers to an instance of your applications

from import App

# this limits the kivy version ie
# below this version you cannot
# use the application or software

kivy.require ( ’1.9.0’ )

# Spinner is a widget that provides
# a quick way to select one value from a set.
# as a drop-down list

from kivy. uix.spinner import Spinner

# the module consists of floatlayout
# work with FloatLayout first
# you must import it

from kivy.uix.floatlayout import FloatLayout

# Here to provide background color

from kivy.core.window import Window


# create LayoutClass

class SampBoxLayout (FloatLayout):

# For a Spinner function that defines a spinner

def spinner_clicked ( self , value):

print ( "Language selected is" + value)


# # Derive 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 AppClass

root = SampleApp ()

# run the class ()


.kv file code:

# .k v implementation of the .py file

# Create a layout, i.e. the root of the layout class
"SampBoxLayout & gt ;:


# creating spinners


# Assigning an identifier

id : spinner_id


# Call back

on_text: root.spinner_clicked (spinner_id.text)


# initially text on counter

 text: "Python"


# total counter

values: [ "Python" , " Java " , " C++ " , "C" , "C #" , "PHP" ]


# spinner size declaration

# and its position

  size_hint: None , None

  size: 200 , 50

  pos_hint: { ’center_x’ :. 5 , ’top’ : 1 }


Image 1:

Image 2:

Image 3:

Below here is the output in the video to understand better:


Learn programming in R: courses


Best Python online courses for 2022


Best laptop for Fortnite


Best laptop for Excel


Best laptop for Solidworks


Best laptop for Roblox


Best computer for crypto mining


Best laptop for Sims 4


Latest questions


Common xlabel/ylabel for matplotlib subplots

12 answers


How to specify multiple return types using type-hints

12 answers


Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers


Flake8: Ignore specific warning for entire file

12 answers


glob exclude pattern

12 answers


How to avoid HTTP error 429 (Too Many Requests) python

12 answers


Python CSV error: line contains NULL byte

12 answers


csv.Error: iterator should return strings, not bytes

12 answers



Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python


How to specify multiple return types using type-hints


Printing words vertically in Python


Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries


Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically