Graphics User Interface for Beginners
Which Graphics User Interface (GUI) would you recommend for a beginner? I have seen some examples of Tkinter, wxPython and GTK.
sneekula
Nearly a Posting Maven
2,427 posts since Oct 2006
Reputation Points: 961
Solved Threads: 212
As a beginner, start working with Tkinter to get a feeling what GUI programming is all about. Tkinter is already present in the normal Python installation. If you need fancier widgets later, download wxPython and experiment with that. PyGTK/GTK works best with Linux, the Windows version needs a lot of additional downloads and the installation process is cumbersome.
vegaseat
DaniWeb's Hypocrite
5,976 posts since Oct 2004
Reputation Points: 1,345
Solved Threads: 1,416
I will check Tkinter programming first. Any examples that show the difference between console and GUI programming?
sneekula
Nearly a Posting Maven
2,427 posts since Oct 2006
Reputation Points: 961
Solved Threads: 212
Here are simple programs. The console version:
# console sales tax program
while True:
price = float(raw_input("Enter purchase price: "))
# prevent division by zero error
if price != 0:
break
else:
print "price can not be zero!"
tax = float(raw_input("Enter sales tax paid: "))
percent = 100 * tax / price
print "You paid %0.3f%s sales tax" % (percent, '%')
Now the Tkinter GUI version:
# Tkinter sales tax program
from Tkinter import *
import tkSimpleDialog
# the basic window
root = Tk()
# create label for result
label1 = Label(root)
# position the label in window
label1.grid(row=0, column=0)
# ask for needed data with dialog window
# the askfloat dialog window makes certain you entered floating point value
# and also prevents you from entering zero which would give divide by zero error
price = tkSimpleDialog.askfloat("Price", "Enter purchase price:", parent=root, minvalue=0.01)
tax = tkSimpleDialog.askfloat("Tax", "Enter sales tax paid:", parent=root)
percent = 100 * tax / price
result = "You paid %0.3f%s sales tax" % (percent, '%')
# display result string in label1
label1.config(text=result)
# event loop needed by GUI, checks for mouse and key events
root.mainloop()
bumsfeld
Nearly a Posting Virtuoso
1,445 posts since Jul 2005
Reputation Points: 404
Solved Threads: 184
Here is the Tkinter sales tax program without the dialog popups ...
# a rather generic Tkinter GUI template for calculations
# uses Entry() for data input and Button() to start calculation
from Tkinter import *
def calculate():
try:
# get the enter1 and enter2 values
price = float(enter1.get())
tax = float(enter2.get())
# do the calculation
percent = 100 * tax / price
result = "You paid %0.3f%s sales tax" % (percent, '%')
# display the result string
label3.config(text=result)
except ValueError:
label3.config(text='Enter numeric values!')
except ZeroDivisionError:
label3.config(text='Price can not be zero!')
enter1.focus_set()
root = Tk()
# window geometry is width x height + x_offset + y_offset
root.geometry("200x150+30+30")
# first entry with label
label1 = Label(root, text='Enter purchase price:')
label1.grid(row=0, column=0)
enter1 = Entry(root, bg='yellow')
enter1.grid(row=1, column=0)
# second entry with label
label2 = Label(root, text='Enter sales tax paid:')
label2.grid(row=2, column=0)
enter2 = Entry(root, bg='yellow')
enter2.grid(row=3, column=0)
# do the calculation by clicking the button
btn1 = Button(root, text='Calculate Percent', command=calculate)
btn1.grid(row=4, column=0)
# display the result in this label
label3 = Label(root)
label3.grid(row=5, column=0)
# start cursor in enter1
enter1.focus()
# value has been entered in enter1 now switch focus to enter2
enter1.bind('<Return>', func=lambda e: enter2.focus_set())
root.mainloop()
vegaseat
DaniWeb's Hypocrite
5,976 posts since Oct 2004
Reputation Points: 1,345
Solved Threads: 1,416