While the calculation of the total resistance of two resistors in parallel is simple, this code shows you how to trap a number of potential errors that come with the entry of the required data. All is wrapped easily into a colorful GUI program, due to the simplicity of the Tkinter module. The GUI contains two data entry boxes, two labels for user instructions, one label to show the calculated results, and a button to start the calculation defined in the function. This could easily be a GUI template for other calculations that need two data inputs. Remember that Tkinter works with Windows, Linux and the Mac OS-X.
Parallel Resistance Calculator GUI (Python)
# a GUI program to calculate the parallel resistance of two resistors using Tkinter
# tested with Python24 vegaseat 22jul2005
from Tkinter import *
def calculate():
""" calculate the resistance of two resistors in parallel """
try:
r1 = float(enter1.get())
r2 = float(enter2.get())
if r1 + r2 > 0:
rp = (r1 * r2) / (r1 + r2)
label3.config(text='Parallel resistance = '+ str(rp))
else:
label3.config(text='division by zero error')
except ValueError:
label3.config(text='Enter numeric values for r1 and r2')
def setfocus2(dummy):
enter2.focus_set()
# create root window
root = Tk()
# create all the components
label1 = Label(root, text='Enter value of resistor1:', width=28)
enter1 = Entry(root, bg='yellow')
label2 = Label(root, text='Enter value of resistor2:')
enter2 = Entry(root, bg='yellow')
btn1 = Button(root, text='Calculate', command=calculate)
label3 = Label(root, text='', bg='green')
# pack the root window in that order
label1.pack(side=TOP, fill=X)
enter1.pack(side=TOP, fill=X)
label2.pack(side=TOP, fill=X)
enter2.pack(side=TOP, fill=X)
btn1.pack(side=TOP)
label3.pack(side=TOP, fill=X)
# cursor in enter1
enter1.focus()
# return key in enter1 sets focus to enter2
enter1.bind("<Return>", func=setfocus2)
# start event loop and program
root.mainloop()
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.