spermspace

Untitled

Mar 21st, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.29 KB | None | 0 0
  1. from kivy.app import App
  2.  
  3. from kivy.uix.gridlayout import GridLayout
  4. from kivy.uix.widget import Widget
  5. from kivy.uix.button import Button
  6. from kivy.uix.label import Label
  7. from kivy.uix.boxlayout import BoxLayout
  8.  
  9. from kivy.config import Config
  10.  
  11. Config.set('graphics', 'resizable', 0)
  12. Config.set('graphics', 'width', 400)
  13. Config.set('graphics', 'height', 500)
  14.  
  15.  
  16. class CalculatorApp(App):
  17.  
  18.     def update_label(self):
  19.         self.lbl.text = self.formula
  20.  
  21.     def add_number(self, instance):
  22.         if(self.formula == '0'):
  23.             self.formula = ''
  24.  
  25.         self.formula += str(instance.text)
  26.         self.update_label()
  27.  
  28.     def add_operation(self, instance):
  29.         if(str(instance.text).lower() == 'x'):
  30.             self.formula += '*'
  31.         else:
  32.             self.formula += str(instance.text)
  33.  
  34.         self.update_label()
  35.  
  36.     def calc_operation(self, instance):
  37.         self.lbl.text = str(eval(self.lbl.text))
  38.         self.formula = '0'
  39.  
  40.  
  41.     def build(self):
  42.         self.formula = '0'
  43.         b1 = BoxLayout(orientation='vertical', padding=25)
  44.         g1 = GridLayout(cols=4, spacing=2, size_hint=(1, .6))
  45.  
  46.         self.lbl = Label(text='0',
  47.             font_size=40,
  48.             size_hint=(1, .4),
  49.             halign="right",
  50.             text_size=(400 - 50, 500 * .4 - 50)
  51.             )
  52.  
  53.         b1.add_widget(self.lbl)
  54.  
  55.         g1.add_widget( Button(text='7', on_press=self.add_number) )
  56.         g1.add_widget( Button(text='8', on_press=self.add_number) )
  57.         g1.add_widget( Button(text='9', on_press=self.add_number) )
  58.         g1.add_widget( Button(text='X', on_press=self.add_operation))
  59.  
  60.         g1.add_widget( Button(text='4', on_press=self.add_number) )
  61.         g1.add_widget( Button(text='5', on_press=self.add_number) )
  62.         g1.add_widget( Button(text='6', on_press=self.add_number) )
  63.         g1.add_widget( Button(text='-', on_press=self.add_operation))
  64.  
  65.         g1.add_widget( Button(text='1', on_press=self.add_number) )
  66.         g1.add_widget( Button(text='2', on_press=self.add_number) )
  67.         g1.add_widget( Button(text='3', on_press=self.add_number) )
  68.         g1.add_widget( Button(text='+', on_press=self.add_operation))
  69.  
  70.         g1.add_widget( Button(text='/', on_press=self.add_operation))
  71.         g1.add_widget( Button(text='0', on_press=self.add_number))
  72.         g1.add_widget( Button(text='.', on_press=self.add_number))
  73.         g1.add_widget( Button(text='=', on_press=self.calc_operation))
  74.  
  75.         b1.add_widget(g1)
  76.  
  77.         return b1
  78.  
  79.  
  80.  
  81. if __name__ == "__main__":
  82.     CalculatorApp().run()
Add Comment
Please, Sign In to add comment