Dieser Python-Schnipsel baut einen kleinen Taschenrechner mit den Ziffern 0-9 und den jeweils üblichen Operatoren. Wer Interesse hat, kann den nachfolgenden Quelltext gerne unter Berücksichtigung der GNU AGPL weiterverwenden und/oder erweitern.
# -*- coding: utf-8 -*-
from Tkinter import *
class Calculator(object):
output = False
submit = False
window = False
def __init__(self):
self.window = Tk()
self.window.title("Calculator")
self.window.resizable(False, False)
self.__build()
self.__display()
def __calc(self, value):
self.output.configure(state="normal")
calc = self.output.get()
calcLen = len(calc)
calcOpt = ["/","*","-","+"]
if value == "C":
self.output.delete(0, END)
elif (value == "0" and calcLen == 0):
pass
elif value == "=":
if calcLen > 0 and calc[-1] in calcOpt:
calc = calc[:-1]
if calcLen != 0:
self.output.delete(0, END)
self.output.insert(0, eval(calc))
else:
if value in calcOpt and calcLen == 0:
pass
elif calcLen > 0 and value in calcOpt and calc[-1] in calcOpt:
self.output.delete(calcLen-1, END)
else:
self.output.insert(END, value)
self.output.configure(state="disabled")
def __build(self):
grid = [
(0,0,"-"),
(0,1,"7"),(1,1,"8"),(2,1,"9"),(3,1,"/"),
(0,2,"4"),(1,2,"5"),(2,2,"6"),(3,2,"*"),
(0,3,"1"),(1,3,"2"),(2,3,"3"),(3,3,"-"),
(0,4,"0"),(1,4,"C"),(2,4,"="),(3,4,"+")
]
for (col,row,text) in grid:
if col == 0 and row == 0:
self.output = Entry(self.window, text=text, state="disabled")
self.output.grid(column=col, row=row, columnspan=4, sticky=E+W)
else:
button = Button(self.window, text=text, command=lambda value=text: self.__calc(value))
button.grid(column=col, row=row)
def __display(self):
self.window.mainloop()
Calculator()