collinsanele

A simple calculator made with python

Nov 2nd, 2018
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. from kivy.uix.textinput import TextInput
  2. from kivy.uix.label import Label
  3. from kivy.uix.button import Button
  4. from kivy.app import App
  5. from kivy.uix.floatlayout import FloatLayout
  6. from kivy.uix.popup import Popup
  7.  
  8. #A simple calculator made by Collins Anele.
  9.  
  10. class Layout(FloatLayout):
  11. def __init__(self, **kwargs):
  12. super().__init__(**kwargs)
  13. self.popup = Popup(title='Error', content=Label(text='Error \nNa wa for you'), size_hint=(None, None), size=(400,400),
  14. pos_hint={'top':0.74, 'center_x':0.50})
  15. self.txtin_display = TextInput(size_hint=(None, None), pos_hint={'top':1, 'center_x':0.50}, size=(600, 250), text='')
  16. self.btn1 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.70, 'x':0.1}, text='1', font_size=50, on_press=self.b1)
  17. self.btn2 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.70, 'x':0.40}, text='2', font_size=50, on_press=self.b2)
  18. self.btn3 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.70, 'x':0.71}, text='3', font_size=50, on_press=self.b3)
  19. self.btn4 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.54, 'x':0.1}, text='4', font_size=50, on_press=self.b4)
  20. self.btn5 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.54, 'x':0.40}, text='5', font_size=50, on_press=self.b5)
  21. self.btn6 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.54, 'x':0.71}, text='6', font_size=50, on_press=self.b6)
  22. self.btn7 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.38, 'x':0.10}, text='7', font_size=50, on_press=self.b7)
  23. self.btn8 = Button(size_hint=(None,None),size=(120,120), pos_hint={'top':0.38, 'x':0.40}, text='8', font_size=50, on_press=self.b8)
  24. self.btn9 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.38, 'x':0.71}, text='9', font_size=50, on_press=self.b9)
  25. self.btn0 = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.22, 'x':0.1}, text='0', font_size=50, on_press=self.b0)
  26. self.btn_mul = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.22, 'x':0.40}, text='*', font_size=50, on_press=self.b_mul)
  27. self.btn_eq = Button(size_hint=(None,None), size=(120,120), pos_hint={'top':0.22, 'x':0.71}, text='=', font_size=50, on_press=self.b_eval)
  28. self.btn_plus = Button(size_hint=(None,None), size=(120,110), pos_hint={'top':0.08, 'x':0.1}, text='+', font_size=50, on_press=self.b_plus)
  29. self.btn_minus = Button(size_hint=(None,None), size=(120,110), pos_hint={'top':0.08, 'x':0.40}, text='-', font_size=50, on_press=self.b_minus)
  30. self.btn_divide = Button(size_hint=(None,None), size=(120,110), pos_hint={'top':0.08, 'x':0.71}, text='/', font_size=50, on_press=self.b_divide)
  31. self.btn_clear = Button(text='Clear', size_hint=(None,None), size=(120,60),
  32. pos_hint={'top':0.77, 'x':0.1}, on_press=self.b_clear)
  33. self.btn_dot1 = Button(text='.', size_hint=(None,None), size=(120,60),
  34. pos_hint={'top':0.77, 'x':0.4}, on_press=self.b_dot1)
  35. self.btn_del = Button(text='del', size_hint=(None,None), size=(120,60),
  36. pos_hint={'top':0.77, 'x':0.71}, on_press= self.b_del)
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. self.add_widget(self.txtin_display)
  48. self.add_widget(self.btn_clear)
  49. self.add_widget(self.btn_del)
  50. self.add_widget(self.btn_dot1)
  51. self.add_widget(self.btn1)
  52. self.add_widget(self.btn2)
  53. self.add_widget(self.btn3)
  54. self.add_widget(self.btn4)
  55. self.add_widget(self.btn5)
  56. self.add_widget(self.btn6)
  57. self.add_widget(self.btn7)
  58. self.add_widget(self.btn8)
  59. self.add_widget(self.btn9)
  60. self.add_widget(self.btn0)
  61. self.add_widget(self.btn_mul)
  62. self.add_widget(self.btn_eq)
  63. self.add_widget(self.btn_plus)
  64. self.add_widget(self.btn_minus)
  65. self.add_widget(self.btn_divide)
  66.  
  67. def b1(self, *args):
  68. self.txtin_display.text += self.btn1.text
  69.  
  70. def b2(self, *args):
  71. self.txtin_display.text += self.btn2.text
  72.  
  73. def b3(self, *args):
  74. self.txtin_display.text += self.btn3.text
  75.  
  76. def b4(self, *args):
  77. self.txtin_display.text += self.btn4.text
  78.  
  79. def b5(self, *args):
  80. self.txtin_display.text += self.btn5.text
  81.  
  82. def b6(self, *args):
  83. self.txtin_display.text += self.btn6.text
  84.  
  85. def b7(self, *args):
  86. self.txtin_display.text += self.btn7.text
  87.  
  88. def b8(self, *args):
  89. self.txtin_display.text += self.btn8.text
  90.  
  91. def b9(self, *args):
  92. self.txtin_display.text += self.btn9.text
  93.  
  94. def b0(self, *args):
  95. self.txtin_display.text += self.btn0.text
  96.  
  97. def b_mul(self, *args):
  98. self.txtin_display.text += self.btn_mul.text
  99.  
  100. def b_plus(self, *args):
  101. self.txtin_display.text += self.btn_plus.text
  102.  
  103. def b_minus(self, *args):
  104. self.txtin_display.text += self.btn_minus.text
  105.  
  106. def b_divide(self, *args):
  107. self.txtin_display.text += self.btn_divide.text
  108.  
  109. def b_del(self, *args):
  110. try:
  111. a = self.txtin_display.text
  112. a = list(a)
  113. a.pop(-1)
  114. a = ''.join(a)
  115. except:
  116. self.popup.open()
  117. else:
  118. self.txtin_display.text = a
  119.  
  120.  
  121.  
  122. def b_eval(self, *args):
  123. try:
  124. ans = eval(self.txtin_display.text)
  125. ans = str(ans)
  126. except:
  127. self.popup.open()
  128. else:
  129. self.txtin_display.text = ans
  130.  
  131. def b_clear(self, *args):
  132. self.txtin_display.text = ''
  133.  
  134. def b_dot1(self, *args):
  135. self.txtin_display.text += self.btn_dot1.text
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144. class Main(App):
  145. def build(self, *args):
  146. return Layout()
  147.  
  148.  
  149.  
  150.  
  151. app = Main()
  152. app.run()
Advertisement
Add Comment
Please, Sign In to add comment