Sadece graphics.py kullanarak bir hesap makinesi tasarladım ama operatörleri göstermemesi gerek, yani +'ya basınca ekranda olan sayılar kalsın sonra bastığım sayıların ekrana yazılması lazım.
Bu kısmı halledince neredeyse bitiyor, yardımcı olan olursa çok sevinirim.
Python:
from graphics import *
def Arda():
arda = GraphWin("Calculator", 600, 600)
arda.setCoords(0.0,0.0,6.0,6.0)
result = Entry(Point(3,5.50),20)
start = Text(Point(3,5.9),"Arda's calculator")
start.draw(arda)
num = "0"
result.setText(num)
result.draw(arda)
arrf = []
arrt = []
x = 3.
y = 3.
i=0.
j=9.
k=0.
z=0.
while j>=0:
arrf.append(Point(x,y))
arrt.append(Point(x+1.5,y+1))
btn = Rectangle(Point(x,y),Point(x+1.5,y+1))
btn.draw(arda)
num = Text(Point(x+0.75,y+0.5),str(j))
num.draw(arda)
x -= 1.5.
j -= 1.
i += 1.
k += 1.
z += 1.
if i==3:
x = 3.
y = 2.
i = 0.
if k==6:
x=3.
y=1.
k=0.
if z==10:
x=0.
y=0.
arrf[z-1] = (Point(x,y))
arrt[z-1] = (Point(x+3,y+1))
btn = Rectangle(Point(x, y), Point(x + 3, y + 1))
btn.draw(arda)
num.undraw()
num = Text(Point(x+1.5,y+0.5),str(j+1))
num.draw(arda)
z=0.
ops = ["AC","+/-","%","/","x","-","+","**","="]
j = 0.
x = 0.
y = 4.
i = 0.
while j<len(ops):
arrf.append(Point(x, y))
arrt.append(Point(x + 1.5, y + 1))
btn = Rectangle(Point(x, y), Point(x + 1.5, y + 1))
btn.draw(arda)
num = Text(Point(x + 0.75, y + 0.5), str(ops[j]))
num.draw(arda)
x += 1.5.
i += 1.
j += 1.
if i==4:
x = 4.5.
y = 3.
if i==5:
x = 4.5.
y = 2.
if i==6:
x = 4.5.
y = 1.
if i==7:
x=3.
y=0.
i=0.
numv = ""
clk = True.
while clk:
ch = arda.getMouse()
if (ch.x > arrf[0].x and ch.x < arrt[0].x and ch.y > arrf[0].y and ch.y < arrt[0].y):
numv = numv+"9"
if (ch.x > arrf[1].x and ch.x < arrt[1].x and ch.y > arrf[1].y and ch.y < arrt[1].y):
numv = numv+"8"
if (ch.x > arrf[2].x and ch.x < arrt[2].x and ch.y > arrf[2].y and ch.y < arrt[2].y):
numv = numv +"7"
if (ch.x > arrf[3].x and ch.x < arrt[3].x and ch.y > arrf[3].y and ch.y < arrt[3].y):
numv = numv +"6"
if (ch.x > arrf[4].x and ch.x < arrt[4].x and ch.y > arrf[4].y and ch.y < arrt[4].y):
numv = numv +"5"
if (ch.x > arrf[5].x and ch.x < arrt[5].x and ch.y > arrf[5].y and ch.y < arrt[5].y):
numv = numv +"4"
if (ch.x > arrf[6].x and ch.x < arrt[6].x and ch.y > arrf[6].y and ch.y < arrt[6].y):
numv = numv +"3"
if (ch.x > arrf[7].x and ch.x < arrt[7].x and ch.y > arrf[7].y and ch.y < arrt[7].y):
numv = numv +"2"
if (ch.x > arrf[8].x and ch.x < arrt[8].x and ch.y > arrf[8].y and ch.y < arrt[8].y):
numv = numv +"1"
if (ch.x > arrf[9].x and ch.x < arrt[9].x and ch.y > arrf[9].y and ch.y < arrt[9].y):
numv = numv +"0"
if (ch.x > arrf[10].x and ch.x < arrt[10].x and ch.y > arrf[10].y and ch.y < arrt[10].y):
numv = ""
if (ch.x > arrf[11].x and ch.x < arrt[11].x and ch.y > arrf[11].y and ch.y < arrt[11].y):
numv = "-" + result.getText()
if (ch.x > arrf[12].x and ch.x < arrt[12].x and ch.y > arrf[12].y and ch.y < arrt[12].y):
numv = numv + "%"
if (ch.x > arrf[13].x and ch.x < arrt[13].x and ch.y > arrf[13].y and ch.y < arrt[13].y):
numv = numv +"/"
if (ch.x > arrf[14].x and ch.x < arrt[14].x and ch.y > arrf[14].y and ch.y < arrt[14].y):
numv = numv +"*"
if (ch.x > arrf[15].x and ch.x < arrt[15].x and ch.y > arrf[15].y and ch.y < arrt[15].y):
numv = numv+"-"
if (ch.x > arrf[16].x and ch.x < arrt[16].x and ch.y > arrf[16].y and ch.y < arrt[16].y):
numv = numv+"+"
if (ch.x > arrf[17].x and ch.x < arrt[17].x and ch.y > arrf[17].y and ch.y < arrt[17].y):
numv = numv+"**"
if (ch.x > arrf[18].x and ch.x < arrt[18].x and ch.y > arrf[18].y and ch.y < arrt[18].y):
try :
result.setText(str(eval(numv)))
numv = ""
except SyntaxError:
numv = numv[1:]
result.setText(str(eval(numv)))
numv = ""
continue.
if (ch.x > 5.99):
break.
result = Entry(Point(3, 5.50), 20)
result.draw(arda)
result.setText(numv)
Arda()
Bu kısmı halledince neredeyse bitiyor, yardımcı olan olursa çok sevinirim.
Son düzenleyen: Moderatör: