1. kivy-customizing-kivywidgets

Customizing Kivy Widgets - (Kivy)

Kivy is a Python library that is used for developing multi-touch applications. It can be used for creating various types of applications like games, tools, and other applications that require graphic interfaces. Kivy provides a wide range of widgets that can be customized according to the requirements. In this tutorial, we will learn how to customize Kivy widgets.


The basic syntax for customizing Kivy widgets is as follows:

class CustomizedWidgetClass(Widget):
    # define properties and methods of widget


In this example, we will create a customized button widget that changes its background color when clicked.

from import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from import ListProperty

class CustomizedButton(Button):
    pressed = ListProperty([0, 0, 0, 1])
    normal = ListProperty([1, 1, 1, 1])

    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            self.background_color = self.pressed
            return True
        return super().on_touch_down(touch)

    def on_touch_up(self, touch):
        if self.collide_point(*touch.pos):
            self.background_color = self.normal
            return True
        return super().on_touch_up(touch)

class CustomizedWidget(Widget):
    def __init__(self, **kwargs):
        super(CustomizedWidget, self).__init__(**kwargs)
        self.add_widget(CustomizedButton(text='Click Me!', size_hint=(None, None), pos=(100, 100), size=(100, 100)))

class CustomizedWidgetApp(App):
    def build(self):
        return CustomizedWidget()

if '__name__' == '__main__':


Customized Button Output


In the above code, we create a new class CustomizedButton that inherits from the Button widget. This new class has two properties 'pressed' and 'normal', which are lists of four elements containing the RGB value of the respective color. In the 'on_touch_down' method, we change the widget's background color to the 'pressed' color when the button is touched. Similarly, when the button is released, we change the background color back to the 'normal' color.

In the CustomizedWidget class, we add the CustomizedButton as a child widget. In the CustomizedWidgetApp class, we create an instance of the CustomizedWidget class and display it by returning it from the 'build' method.


Customizing Kivy widgets allows developers to create unique interface designs and behaviors tailored to the specific needs of their application. This can help make an application more user-friendly, improve user engagement and satisfaction, and create a more visually appealing application.

Important Points

  • Kivy widgets can be customized by creating a new class that inherits from the desired widget class.
  • The new class can have its own properties and methods to create unique behaviors.
  • Customized widgets can be added as child widgets to other widgets.
  • Customized widgets can be used to create unique interface designs and behaviors that enhance user experience.


In this tutorial, we learned how to customize Kivy widgets by creating a new class that inherits from the desired widget class and adding custom properties and methods. We also created a customized button widget that changed its background color when clicked, and saw how customization can be used to create unique interface designs and behaviors.

Published on: