Är rätt ringrostig på Python, men skulle säga att för enklare "lära mig programmera" har Tkinter den stora fördelen i att vara det närmaste man kommer "inbyggt GUI stöd i Python" man kan komma.
Här är en litet quick-n-dirty program som drar upp ett gäng knappar i ett fönster och associerar en händelsehanterar med varje.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
win = Tk()
win.title("Calculator")
win.grid()
ans = Label(text = "TODO: show calc")
ans.grid(row = 0, columnspan = 5, ipadx = 5, ipady = 5)
class CalcBtn:
def __init__(self, win, name):
self.name = name
self.btn = Button(win, text = btnName, height = 2, width = 2)
self.btn.grid(row = rowIdx + 1, column = colIdx)
self.btn.bind("<Button-1>", self)
def __call__(self, event):
print "Button " + self.name + " pressed"
calcLayout = (
("←", "CE", "C", "±", "√"),
("7", "8", "9", "/", "%"),
("4", "5", "6", "*", "1/x"),
("1", "2", "3", "-", "x!"),
("0", "00", ".", "+", "="),
)
for rowIdx, rowDesc in enumerate(calcLayout):
for colIdx, btnName in enumerate(rowDesc):
CalcBtn(win, btnName)
win.mainloop()
Finns rätt mycket att putsa på... T.ex. stöd för breda/höga knappar, eventuellt använda en bild från Photoshop (har inte gjort det själv i Tkinter så kan inte bidra här) etc.