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
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.
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.