CALCULATOR APP KIVY

Please if you like my content Please do not forget to support this channel on PayPal now for $1 only! Or less 



 import kivy



from kivy.app import App
from kivy.properties import NumericProperty, StringProperty
from kivy.uix.gridlayout import GridLayout



class MainWidget(GridLayout):
textnumber = StringProperty()
addnumber = NumericProperty()
nextnumber = NumericProperty()



def zero(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('0')




def one(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('1')


def two(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('2')


def three(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('3')

def four(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('4')

def five(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('5')


def six(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('6')


def seven(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('7')

def eight(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('8')

def nine(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('9')

def decimal(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('.')


def division(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str(' / ')


def addition(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str('+')

def subtraction(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str(' - ')


def multiplication(self):
if self.textnumber == "INVALID OPERATION":
self.textnumber = str('')
else:
self.textnumber += str(' * ')


def restart(self):
self.textnumber = str('')


def equal(self):
try:
number = str(eval(self.textnumber))
self.textnumber = str(number)
print(number)
except SyntaxError:
self.textnumber = str("INVALID OPERATION")










# we are defining the Base Class of our Kivy App
class myApp(App):
def build(self):
# return a MainWidget() as a root widget
return MainWidget()


if __name__ == '__main__':
# Here the class MyApp is initialized
# and its run() method called.
myApp().run()





KV FILE



# my.kv file code here
<MainWidget>:
rows: 5
cols: 4







Label:

size_hint: .2,.1


Label:
text: root.textnumber
size_hint: .2,.1
font_size: (self.height/15)* 3

Label:
text:
size_hint: .2,.1



Button:
text: 'C'
size_hint: .2,.1
on_press: root.restart()
Button:
text: '1'
size_hint: .2,.1
on_press: root.one()

Button:
text: '2'
size_hint: .2,.1
on_press: root.two()

Button:
text: '3'
size_hint: .2,.1
on_press: root.three()

Button:
text: '+'
size_hint: .2,.1
on_press: root.addition()
Button:
text: '4'
size_hint: .2,.1
on_press: root.four()

Button:
text: '5'
size_hint: .2,.1
on_press: root.five()

Button:
text: '6'
size_hint: .2,.1
on_press: root.six()

Button:
text: '-'
size_hint: .2,.1
on_press: root.subtraction()

Button:
text: '7'
size_hint: .2,.1
on_press: root.seven()

Button:
text: '8'
size_hint: .2,.1
on_press: root.eight()
Button:
text: '9'
size_hint: .2,.1
on_press: root.nine()

Button:
text: 'X'
size_hint: .2,.1
on_press: root.multiplication()

Button:
text: '.'
size_hint: .2,.1
on_press: root.decimal()

Button:
text: '0'
size_hint: .2,.1
on_press: root.zero()
Button:
text: '/'
size_hint: .2,.1
on_press: root.division()

Button:
text: '='
size_hint: .2,.1
on_press: root.equal()

No comments:

Post a Comment

Drawing App For Kivy

  Below here is the source code for Drawing Application for kivy. Please if you like this content.  Don't forget to Subscribe to my YouT...