Advertisement
Roman_Sarnov

Untitled

Nov 7th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. from kivy.app import App
  2. from kivy.uix.gridlayout import GridLayout
  3. from kivy.uix.button import Button
  4. from kivy.uix.widget import Widget
  5. from kivy.uix.label import Label
  6. from kivy.uix.boxlayout import BoxLayout
  7. from kivy.config import Config
  8. Config.set('graphics', 'resizable', '0')
  9. Config.set('graphics', 'width', '400')
  10. Config.set('graphics', 'height', '500')
  11.  
  12.  
  13. class CalculatorApp(App):
  14. def update_label(self):
  15. self.lbl.text = self.formula
  16. def add_number(self,instance):
  17. if self.formula == '0':
  18. self.formula = ''
  19. self.formula += str(instance.text)
  20. self.update_label()
  21. def add_operation(self,instance):
  22. if str(instance.text).lower() == 'x':
  23. self.formula += '*'
  24. else:
  25. self.formula += str(instance.text)
  26. self.update_label()
  27. def calc_result(self,instance):
  28. self.lbl.text = str(eval(self.lbl.text))
  29. self.formula = '0'
  30. def build(self):
  31. self.formula = '0'
  32. bl = BoxLayout(orientation = 'vertical',padding = 10)
  33. self.lbl = Label(text = '0', font_size = 40, size_hint = (1,.4),halign = 'right',valign = 'center', text_size = (400-20,500 * .4 - 20)) # font_size - размер текста
  34. # text_size задает размеры текстуры текста. 1 - ширина, 2 - высота
  35. bl.add_widget(self.lbl)
  36. gl = GridLayout(cols = 4, spacing = 1, size_hint = (1,.6))
  37. gl.add_widget(Button(text = '7', on_press = self.add_number))
  38. gl.add_widget(Button(text='8', on_press = self.add_number))
  39. gl.add_widget(Button(text='9', on_press = self.add_number))
  40. gl.add_widget(Button(text='X',on_press = self.add_operation))
  41.  
  42. gl.add_widget(Button(text='4', on_press = self.add_number))
  43. gl.add_widget(Button(text='5', on_press = self.add_number))
  44. gl.add_widget(Button(text='6', on_press = self.add_number))
  45. gl.add_widget(Button(text='-',on_press = self.add_operation))
  46.  
  47. gl.add_widget(Button(text='1', on_press = self.add_number))
  48. gl.add_widget(Button(text='2', on_press = self.add_number))
  49. gl.add_widget(Button(text='3', on_press = self.add_number))
  50. gl.add_widget(Button(text='+',on_press = self.add_operation))
  51.  
  52. gl.add_widget(Button(text='/', on_press = self.add_operation))
  53. gl.add_widget(Button(text='0', on_press = self.add_number))
  54. gl.add_widget(Button(text='.', on_press = self.add_number))
  55. gl.add_widget(Button(text='=',on_press = self.calc_result))
  56. bl.add_widget(gl)
  57. return bl
  58.  
  59. if __name__ == "__main__":
  60. CalculatorApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement