Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from kivy.uix.textinput import TextInput
- from kivy.uix.label import Label
- from kivy.uix.button import Button
- from kivy.app import App
- from kivy.uix.floatlayout import FloatLayout
- from kivy.uix.popup import Popup
- #A simple calculator made by Collins Anele.
- Email:[email protected]
- class Layout(FloatLayout):
- def __init__(self, **kwargs):
- super().__init__(**kwargs)
- self.popup = Popup(title='Error', content=Label(text='Error \nNa wa for you'), size_hint=(None, None), size=(400,400),
- pos_hint={'top':0.74, 'center_x':0.50})
- self.txtin_display = TextInput(size_hint=(None, None), pos_hint={'top':1, 'center_x':0.50}, size=(600, 250), text='')
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- self.btn_clear = Button(text='Clear', size_hint=(None,None), size=(120,60),
- pos_hint={'top':0.77, 'x':0.1}, on_press=self.b_clear)
- self.btn_dot1 = Button(text='.', size_hint=(None,None), size=(120,60),
- pos_hint={'top':0.77, 'x':0.4}, on_press=self.b_dot1)
- self.btn_del = Button(text='del', size_hint=(None,None), size=(120,60),
- pos_hint={'top':0.77, 'x':0.71}, on_press= self.b_del)
- self.add_widget(self.txtin_display)
- self.add_widget(self.btn_clear)
- self.add_widget(self.btn_del)
- self.add_widget(self.btn_dot1)
- self.add_widget(self.btn1)
- self.add_widget(self.btn2)
- self.add_widget(self.btn3)
- self.add_widget(self.btn4)
- self.add_widget(self.btn5)
- self.add_widget(self.btn6)
- self.add_widget(self.btn7)
- self.add_widget(self.btn8)
- self.add_widget(self.btn9)
- self.add_widget(self.btn0)
- self.add_widget(self.btn_mul)
- self.add_widget(self.btn_eq)
- self.add_widget(self.btn_plus)
- self.add_widget(self.btn_minus)
- self.add_widget(self.btn_divide)
- def b1(self, *args):
- self.txtin_display.text += self.btn1.text
- def b2(self, *args):
- self.txtin_display.text += self.btn2.text
- def b3(self, *args):
- self.txtin_display.text += self.btn3.text
- def b4(self, *args):
- self.txtin_display.text += self.btn4.text
- def b5(self, *args):
- self.txtin_display.text += self.btn5.text
- def b6(self, *args):
- self.txtin_display.text += self.btn6.text
- def b7(self, *args):
- self.txtin_display.text += self.btn7.text
- def b8(self, *args):
- self.txtin_display.text += self.btn8.text
- def b9(self, *args):
- self.txtin_display.text += self.btn9.text
- def b0(self, *args):
- self.txtin_display.text += self.btn0.text
- def b_mul(self, *args):
- self.txtin_display.text += self.btn_mul.text
- def b_plus(self, *args):
- self.txtin_display.text += self.btn_plus.text
- def b_minus(self, *args):
- self.txtin_display.text += self.btn_minus.text
- def b_divide(self, *args):
- self.txtin_display.text += self.btn_divide.text
- def b_del(self, *args):
- try:
- a = self.txtin_display.text
- a = list(a)
- a.pop(-1)
- a = ''.join(a)
- except:
- self.popup.open()
- else:
- self.txtin_display.text = a
- def b_eval(self, *args):
- try:
- ans = eval(self.txtin_display.text)
- ans = str(ans)
- except:
- self.popup.open()
- else:
- self.txtin_display.text = ans
- def b_clear(self, *args):
- self.txtin_display.text = ''
- def b_dot1(self, *args):
- self.txtin_display.text += self.btn_dot1.text
- class Main(App):
- def build(self, *args):
- return Layout()
- app = Main()
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment