-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclalc.py
More file actions
64 lines (53 loc) · 2.29 KB
/
clalc.py
File metadata and controls
64 lines (53 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.config import Config
Config.set('graphics','resizable',0)
Config.set('graphics','width',400)
Config.set('graphics','height',500)
class CalculatorApp(App):
def update_label(self):
self.lbl.text=self.formula
def add_number(self,instance):
if (self.formula=="0"):
self.formula=""
self.formula+=str(instance.text)
self.update_label()
def add_operation(self,instance):
if str(instance.text).lower()=="x":
self.formula+="*"
else:
self.formula+=str(instance.text)
self.update_label()
def calc_result(self):
self.lbl.text=str(eval(self.lbl.text))
self.formula="0"
def build(self):
self.formula=""
bl=BoxLayout(orientation='vertical',padding=25)
gl=GridLayout(cols=4,spacing=3,size_hint=(1,.6))
self.lbl = Label(text="0",font_size=40,halign="right",valign="center",size_hint=(1,.4),text_size=(400-50,500*.4-50))
bl.add_widget(self.lbl)
gl.add_widget(Button(text="7",on_press=self.add_number))
gl.add_widget(Button(text="8",on_press=self.add_number))
gl.add_widget(Button(text="9",on_press=self.add_number))
gl.add_widget(Button(text="x",on_press=self.add_operation))
gl.add_widget(Button(text="4",on_press=self.add_number))
gl.add_widget(Button(text="5",on_press=self.add_number))
gl.add_widget(Button(text="6",on_press=self.add_number))
gl.add_widget(Button(text="-",on_press=self.add_operation))
gl.add_widget(Button(text="1",on_press=self.add_number))
gl.add_widget(Button(text="2",on_press=self.add_number))
gl.add_widget(Button(text="3",on_press=self.add_number))
gl.add_widget(Button(text="+",on_press=self.add_operation))
gl.add_widget(Widget())
gl.add_widget(Button(text="0",on_press=self.add_number))
gl.add_widget(Button(text=".",on_press=self.add_number))
gl.add_widget(Button(text="=",on_press=self.calc_result))
bl.add_widget(gl)
return bl
if __name__=='__main__':
CalculatorApp().run()