Open In App

Python | Progressbar widget in kivy using .kv file

Last Updated : 07 Feb, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Kivy is a platform-independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.

👉🏽 Kivy Tutorial – Learn Kivy with Examples.

Progressbar Widget:

ProgressBar widget is used to visualize the progress of some task. Only the horizontal mode is currently supported: the vertical mode is not yet available. The progress bar has no interactive elements and is a display-only widget.

To work with the progressbar widget you must have to import it by the command:

from kivy.uix.progressbar import ProgressBar

The progress bar take takes two arguments:
1) max: Maximum value allowed for value. It is a Numericproperty and defaults to 100.
2) value: Current Value for the slider

Basic Approach:

1) import kivy
2) import kivyApp
3) import progressbar
4) import Boxlayout(according to need)
5) Set minimum version(optional)
6) Create Layout class:
7) Create App class
8) Create .kv file:
         1) Add progress bar
         2) Add label
         3) Add canvas if you want as i did
8) return Layout/widget/Class(according to requirement)
9) Run an instance of the class

Implementation of the Approach:

.py file




# Program to Show how to create a Progressbar in .kv file
  
# 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 
    
# The ProgressBar widget is used to
# visualize the progress of some task
from kivy.uix.progressbar import ProgressBar 
  
# BoxLayout arranges children in a vertical or horizontal box. 
# or help to put the children at the desired location. 
from kivy.uix.boxlayout import BoxLayout
  
  
# The class whose internal work is in  kv file
class ProgBar(BoxLayout):
    pass
  
# Create the App Class   
class mainApp(App):
    def build(self):
        return ProgBar()
  
# Create the run
if __name__=='__main__':
    mainApp().run()


.kv file




# .kv file
  
# Extension of ProgBar class in .kv file
<ProgBar>:
  
    orientation: 'vertical'
    # Creating the background of the App
    canvas:
        Color:
            rgb: .45, .28, .5
        Rectangle:
            pos: self.pos
            size: self.size
  
    # Providing label to the pg bar
    Label:
        text: '[size = 40px]Progress Bar 1 (at .25)'
        color: .5, 0, .5, 1
        markup: True
  
    # Creating thepg bar of specific value
    ProgressBar:
        value: .25
        min: 0
        max: 1
        pos_hint: {'x':.1}
        size_hint_x: .8
  
    # Providing label to the pg bar
    Label:
        text: '[size = 40px]Progress Bar 2 (at .55)'
        color: .5, 0, .5, 1
        markup: True
  
    # Creating thepg bar of specific value
    ProgressBar:
        value: .55
        min: 0
        max: 1
        pos_hint: {'x':.1}
        size_hint_x: .8
     


Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads