Python | Create checkbox using .kv file
Last Updated :
19 Oct, 2021
Improve
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.
Checkbox widget:
CheckBox is a specific two-state button that can be either checked or unchecked.
To work with the Checkbox you first have to import Checkbox from the module which consists all features, functions of the checkbox i.e.
from kivy.uix.checkbox import CheckBox
Basic Approach to follow while creating Checkbox using .kv file : 1) import kivy 2) import kivyApp 3) import BoxLayout 4) import Checkbox 5) set minimum version(optional) 6) Extend the container class 7) set up .kv file : 9) Return layout 10) Run an instance of the class
Now the program of How to create Checkbox in Kivy using .kv file:
# main.py file
# program for creating checkbox using .kv in kivy.
# import kivy module
import kivy
# set require version
kivy.require("1.9.0")
# base Class of your App inherits from the App class.
# app:always refers to the instance of your application
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
## not necessary while using .kv file
from kivy.uix.checkbox import CheckBox
# To do some manipulation on window import window
from kivy.core.window import Window
# Container class for the app's widgets
class SampBoxLayout(BoxLayout):
# Callback for the checkbox
def checkbox_click(self, instance, value):
if value is True:
print("Checkbox Checked")
else:
print("Checkbox Unchecked")
# App derived from App class
class SampleApp(App):
# build is a method of Kivy's App class used
# to place widgets onto the GUI.
def build(self):
# setting up window background color
Window.clearcolor = (0, 0, .30, .60)
return SampBoxLayout()
# Run the app
root = SampleApp()
root.run()
sample.kv file of the code.
#.kv file of main.py file
#: import CheckBox kivy.uix.checkbox
# giving colour to label
<CustLabel@Label>:
color: .761, .190, .810, 1
<SampBoxLayout>:
orientation: "vertical"
padding: 10
spacing: 10
CustLabel:
text: "Gender"
size_hint_x: 1
font_size:20
# creating box layout
BoxLayout:
# assigning orientation
orientation: "horizontal"
height: 20
BoxLayout:
orientation: "horizontal"
size_hint_x: .22
# label creation
CustLabel:
text: "Male"
size_hint_x: .80
font_size:30
CheckBox:
color:.294, .761, .623
on_active: root.checkbox_click(self, self.active)
size_hint_x: .20
CustLabel:
text: "Female"
size_hint_x: .80
font_size:20
CheckBox:
on_active: root.checkbox_click(self, self.active)
size_hint_x: .20
CustLabel:
text: "Other"
size_hint_x: .80
font_size:10
CheckBox:
on_active: root.checkbox_click(self, self.active)
size_hint_x: .20
Output:

Video output: