Use image as a button in kivy

29 Jun, 2022
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. As we have discussed earlier that how to work with images and now in this we will gonna be learn how to use the images and create a button with them. In this article we will learn how can we use the image as button and how to add functionality and styling on that image.
To learn about it you must be aware about some properties, that are – background_down : 1) Background image of the button used for the default graphical representation when the button is pressed. 2) background_down is a StringProperty . background_normal : 1) Background image of the button used for the default graphical representation when the button is not pressed. 2) background_normal is also a StringProperty . background_disabled_normal : 1) Background image of the button used for the default graphical representation when the button is disabled and not pressed. 2) background_disabled_normal is also a StringProperty . Notes : 1) Now its only sufficient to understand that string property means they only take values in string that means like background_down: “normal.png” like this. 2) On click on the image it looks same like a simple button (as we uses it in a button).
Image used in this article are: normal.png:  down.png: 
Basic Approach  :

-> import kivy
-> import kivy App
-> import button
-> set minimum version(optional)
-> Extend the class :  
              -> create an image a  button
              -> Do styling
              -> Arrange call back if needed 
-> Add and return a button
-> Run an instance of the class
Kivy Tutorial – Learn Kivy with Examples.
Simple Implementation that how to create a button using image 
Python3
## Sample Python application demonstrating that  ## how to create button using image in kivy      ##################################################     # import kivy moduleimport kivy    # this restrict the kivy version i.e# below this kivy version you cannot# use the app or softwarekivy.require("1.9.1")    # base Class of your App inherits from the App class.# app:always refers to the instance of your applicationfrom kivy.app import App    # creates the button in kivy# if not imported shows the errorfrom kivy.uix.button import Button  # this restrict the kivy version i.e  # below this kivy version you cannot  # use the app or software  kivy.require('1.9.0')      # to change the kivy default settings we use this module configfrom kivy.config import Config     # 0 being off 1 being on as in true / false# you can use 0 or 1 && True or FalseConfig.set('graphics', 'resizable', True)      # class in which we are creating the image buttonclass ButtonApp(App):            def build(self):          # create an image a button        # Adding images normal.png image as button        # decided its position and size        btn = Button(text ="Push Me !",                     color =(1, 0, .65, 1),                     background_normal = 'normal.png',                     background_down ='down.png',                     size_hint = (.3, .3),                     pos_hint = {"x":0.35, "y":0.3}                   )             return btn                # creating the object root for ButtonApp() class root = ButtonApp()    # run function runs the whole program# i.e run() method which calls the target# function passed to the constructor.root.run()
Output:  Code to implement the styling and arranging a callback to the button – 
Python3
## Sample Python application demonstrating that  ## how to create button using image in kivy     ##################################################     # import kivy moduleimport kivy   # this restrict the kivy version i.e# below this kivy version you cannot# use the app or softwarekivy.require("1.9.1")   # base Class of your App inherits from the App class.# app:always refers to the instance of your applicationfrom kivy.app import App   # creates the button in kivy# if not imported shows the errorfrom kivy.uix.button import Button # this restrict the kivy version i.e  # below this kivy version you cannot  # use the app or software  kivy.require('1.9.0')     # to change the kivy default settings we use this module configfrom kivy.config import Config    # 0 being off 1 being on as in true / false# you can use 0 or 1 && True or FalseConfig.set('graphics', 'resizable', True)    # class in which we are creating the imagebuttonclass ButtonApp(App):           def build(self):         # create a fully styled functional button        # Adding images normal.png and down.png        btn = Button(text ="Push Me !",                     background_normal = 'normal.png',                     background_down = 'down.png',                     size_hint = (.3, .3),                     pos_hint = {"x":0.35, "y":0.3}                   )           # bind() use to bind the button to function callback        btn.bind(on_press = self.callback)        return btn       # callback function tells when button pressed    def callback(self, event):        print("button pressed")        print('Yoooo !!!!!!!!!!!')              # creating the object root for ButtonApp() class root = ButtonApp()   # run function runs the whole program# i.e run() method which calls the target# function passed to the constructor.root.run()
Output:  
surinderdawra388
Python-gui
Python-kivy
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Iterate over a list in Python
Python Classes and Objects
Introduction To PYTHON
Python OOPs Concepts