Hello everybody, Welcome back to programminginpython.com! Now am going to show you how to make a simple Python GUI application, basically, the app is a simple calculator which adds two numbers. I used TKInter which is a standard GUI package for Python. In the previous post, I covered the basic introduction to GUI programming in Python, here I will use those and also extend some other things to build this simple app. So get ready for a simple python GUI calculator using TKInter.
You can also watch the video on YouTube here
July Promo - Limited Time Sale
Below are the screenshots, how what our basic app looks like,
Here I used, a grid layout for designing the layout, in the previous post, I told about pack() which sets the widgets automatically based on available space in the window, but here we can set the widgets where we want to place them.
July Promo - Limited Time Sale
Firstly import and initialize TKInter,
import tkinter as tk .. .. root = tk.Tk()
I also set the size of the app and its title,
root.geometry('400x200+100+200') root.title('Simple Calculator')
I also added some labels and input fields to read the entered numbers,
labelTitle = tk.Label(root, text="Simple Calculator").grid(row=0, column=2) labelNum1 = tk.Label(root, text="Enter a number").grid(row=1, column=0) labelNum2 = tk.Label(root, text="Enter another number").grid(row=2, column=0) labelResult = tk.Label(root) labelResult.grid(row=7, column=2) entryNum1 = tk.Entry(root,textvariable=number1).grid(row=1, column=2) entryNum2 = tk.Entry(root,textvariable=number2).grid(row=2, column=2)
Then I add a button, when clicked, calculates the result and displays it in the label labelResult
I initialized the above.
So when the button is clicked, a function is called which calculates the sum of both the numbers.
call_result = partial(call_result, labelResult, number1, number2) buttonCal = tk.Button(root, text="Calculate", command=call_result).grid(row=3, column=0)
The command
parameter to Button
function calls the call_result
function, which does the simple logic.
The call_result
function.
def call_result(label_result, n1, n2): num1 = (n1.get()) num2 = (n2.get()) result = int(num1)+int(num2) label_result.config(text="Result is %d" % result) return
Feel free to look at my previous posts on Python GUI programming.
Program
__author__ = 'Avinash' import tkinter as tk from functools import partial def call_result(label_result, n1, n2): num1 = (n1.get()) num2 = (n2.get()) result = int(num1)+int(num2) label_result.config(text="Result is %d" % result) return root = tk.Tk() root.geometry('400x200+100+200') root.title('Simple Calculator') number1 = tk.StringVar() number2 = tk.StringVar() labelTitle = tk.Label(root, text="Simple Calculator").grid(row=0, column=2) labelNum1 = tk.Label(root, text="Enter a number").grid(row=1, column=0) labelNum2 = tk.Label(root, text="Enter another number").grid(row=2, column=0) labelResult = tk.Label(root) labelResult.grid(row=7, column=2) entryNum1 = tk.Entry(root, textvariable=number1).grid(row=1, column=2) entryNum2 = tk.Entry(root, textvariable=number2).grid(row=2, column=2) call_result = partial(call_result, labelResult, number1, number2) buttonCal = tk.Button(root, text="Calculate", command=call_result).grid(row=3, column=0) root.mainloop()
That’s it for this post guys, also feel free to look at other Python tutorials on GUI Programming.