from kivy.app import App
import kivy
from kivy.uix.button import Button
from kivy.uix.codeinput import CodeInput
from pygments.lexers import HtmlLexer
from kivy.core.window import Window
from kivy.config import Config
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
Config.set('graphics','resizable',0);
Window.size = (400, 500);
class CalculatorApp(App):
def update_label(self,):
self.lbl.text = self.formula
def clear(self, instance):
self.formula = "0"
self.update_label()
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, instance):
self.lbl.text = str(eval(self.lbl.text))
self.formula = "0"
def build(self):
try:
self.formula = "0"
box = BoxLayout(orientation = 'vertical', padding=25)
layout = GridLayout(cols= 4, spacing=3,size_hint= (1,.6))
self.lbl = Label(text='0', font_size= 50, halign='right', valign='center', size_hint = (1, .4), text_size=(400- 50, 500 * .4 - 50))
box.add_widget( self.lbl)
layout.add_widget(Button(background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='C', on_press = self.clear,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='7', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='8', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='9', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='X', on_press = self.add_operation,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='4', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='5', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='6', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='-', on_press = self.add_operation,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='1', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='2', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='3', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='+', on_press = self.add_operation,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='/', on_press = self.add_operation,background_normal='', background_color = [.100,.100,.100,1] ) )
layout.add_widget(Button(text='0', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='.', on_press = self.add_number,background_normal='', background_color = [.100,.100,.100,1]) )
layout.add_widget(Button(text='=', on_press = self.calc_result,background_normal='', background_color = [.100,.100,.100,1]) )
box.add_widget( layout )
return box
except:
root = CalculatorApp()
root.run()