Python Kivy: Build a Standard Calculator Application – Basic GUI
Python Kivy is a powerful open-source Python library for developing multitouch applications. In this article, we will learn how to build a standard calculator application with a basic graphical user interface (GUI) using Python Kivy.
Prerequisites
In order to follow this tutorial, you will need to have Python and Kivy installed on your system. You can install Kivy using pip:
pip install kivy
Creating the User Interface
First, let’s create a simple user interface for our calculator application using Kivy’s built-in widgets. We will create a grid layout to organize the buttons and display of the calculator.
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
class CalculatorApp(App):
def build(self):
layout = GridLayout(cols=4, spacing=10, padding=10)
# Create the display label
self.display = Label(text='0', font_size=40)
layout.add_widget(self.display)
# Create the buttons for numbers and operations
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
for button in buttons:
layout.add_widget(Button(text=button, on_press=self.on_button_press))
return layout
def on_button_press(self, instance):
if instance.text == '=':
self.display.text = str(eval(self.display.text))
else:
self.display.text += instance.text
Running the Application
Save the above code in a file (e.g., calculator_app.py
) and run the application using the following command:
python calculator_app.py
You should now see a basic calculator application with a graphical user interface.
Conclusion
In this article, we learned how to use Python Kivy to build a standard calculator application with a basic graphical user interface. Kivy provides a powerful and flexible framework for developing cross-platform applications with rich user interfaces. With its intuitive design and easy-to-use widgets, Kivy is a great choice for building interactive and responsive GUI applications in Python.