Skip to content

Commit

Permalink
simple calculator using tkinter
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronish authored and Ronish committed Apr 23, 2021
0 parents commit 0794b7d
Show file tree
Hide file tree
Showing 561 changed files with 204,241 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/tkinter.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

117 changes: 117 additions & 0 deletions Calculator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
from _ast import Lambda
from tkinter import *

root = Tk()

# Defining the title of the project
root.title("Simple Calculator")
root.resizable(0, 0,)
e = Entry(root, width=35, font=("Times New roman", 18), bg="skyblue", borderwidth=10)
e.grid(row=0, column=0, columnspan=5, padx=10, pady=10)


def button_click(number):
current = e.get()
e.delete(0, END)
e.insert(0, str(current) + str(number))


def button_clear():
e.delete(0, END)


def button_add():
first_number = e.get()
global f_num
global math
math = "addition"
f_num = int(first_number)
e.delete(0, END)


def button_equal():
second_number = e.get()
e.delete(0, END)

if math == "addition":
e.insert(0, f_num + int(second_number))

if math == "subtract":
e.insert(0, f_num - int(second_number))

if math == "multiply":
e.insert(0, f_num * int(second_number))

if math == "divide":
e.insert(0, f_num / int(second_number))


def button_subract():
first_number = e.get()
global f_num
global math
math = "subtract"
f_num = int(first_number)
e.delete(0, END)


def button_multiply():
first_number = e.get()
global f_num
global math
math = "multiply"
f_num = int(first_number)
e.delete(0, END)


def button_divide():
first_number = e.get()
global f_num
global math
math = "divide"
f_num = int(first_number)
e.delete(0, END)


# Defining the buttons
button_1 = Button(root, text="1", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(1))
button_2 = Button(root, text="2", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(2))
button_3 = Button(root, text="3", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(3))
button_4 = Button(root, text="4", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(4))
button_5 = Button(root, text="5", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(5))
button_6 = Button(root, text="6", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(6))
button_7 = Button(root, text="7", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(7))
button_8 = Button(root, text="8", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(8))
button_9 = Button(root, text="9", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(9))
button_0 = Button(root, text="0", font=("Times New Roman", 20, ""), padx=40, pady=20, command=lambda: button_click(0))
button_add = Button(root, text="+", font=("Times New Roman", 20, ""), padx=39, pady=20, command=button_add)
button_subtract = Button(root, text="-", font=("Times New Roman", 20, ""), padx=39, pady=20, command=button_subract)
button_multiply = Button(root, text="×", font=("Times New Roman", 20, ""), padx=39, pady=20, command=button_multiply)
button_divide = Button(root, text="÷", font=("Times New Roman", 20, ""), padx=39, pady=20, command=button_divide)
button_equal = Button(root, bg="skyblue", font=("Times New Roman", 20, ""), text="=", padx=39, pady=20,
command=button_equal)
button_clear = Button(root, text="Clear", bg="red", font=("Times New Roman", 20, ""), padx=20, pady=20,
command=button_clear)

# Putting button on the screen
button_1.grid(row=3, column=0)
button_2.grid(row=3, column=1)
button_3.grid(row=3, column=2)

button_4.grid(row=2, column=0)
button_5.grid(row=2, column=1)
button_6.grid(row=2, column=2)

button_7.grid(row=1, column=0)
button_8.grid(row=1, column=1)
button_9.grid(row=1, column=2)

button_0.grid(row=4, column=1)
button_clear.grid(row=4, column=0)
button_add.grid(row=4, column=4)
button_subtract.grid(row=3, column=4)
button_multiply.grid(row=2, column=4)
button_divide.grid(row=1, column=4)
button_equal.grid(row=4, column=2)

root.mainloop()
19 changes: 19 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from tkinter import *

root = Tk()
e1 = Entry(root, width=50, fg= "red", bg="white", borderwidth=5 )
e1.pack()
def myClick():
textoutput = 'Hello,' + e1.get()

myLabel = Label(root, text = textoutput)

myLabel.pack()


myButton = Button(root, text="Click Here", command=myClick)
myButton.pack()



root.mainloop()
Empty file added test.py
Empty file.
128 changes: 128 additions & 0 deletions venv/Lib/site-packages/_distutils_hack/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
import sys
import os
import re
import importlib
import warnings


is_pypy = '__pypy__' in sys.builtin_module_names


warnings.filterwarnings('ignore',
'.+ distutils .+ deprecated',
DeprecationWarning)


def warn_distutils_present():
if 'distutils' not in sys.modules:
return
if is_pypy and sys.version_info < (3, 7):
# PyPy for 3.6 unconditionally imports distutils, so bypass the warning
# https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250
return
warnings.warn(
"Distutils was imported before Setuptools, but importing Setuptools "
"also replaces the `distutils` module in `sys.modules`. This may lead "
"to undesirable behaviors or errors. To avoid these issues, avoid "
"using distutils directly, ensure that setuptools is installed in the "
"traditional way (e.g. not an editable install), and/or make sure "
"that setuptools is always imported before distutils.")


def clear_distutils():
if 'distutils' not in sys.modules:
return
warnings.warn("Setuptools is replacing distutils.")
mods = [name for name in sys.modules if re.match(r'distutils\b', name)]
for name in mods:
del sys.modules[name]


def enabled():
"""
Allow selection of distutils by environment variable.
"""
which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib')
return which == 'local'


def ensure_local_distutils():
clear_distutils()
distutils = importlib.import_module('setuptools._distutils')
distutils.__name__ = 'distutils'
sys.modules['distutils'] = distutils

# sanity check that submodules load as expected
core = importlib.import_module('distutils.core')
assert '_distutils' in core.__file__, core.__file__


def do_override():
"""
Ensure that the local copy of distutils is preferred over stdlib.
See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401
for more motivation.
"""
if enabled():
warn_distutils_present()
ensure_local_distutils()


class DistutilsMetaFinder:
def find_spec(self, fullname, path, target=None):
if path is not None:
return

method_name = 'spec_for_{fullname}'.format(**locals())
method = getattr(self, method_name, lambda: None)
return method()

def spec_for_distutils(self):
import importlib.abc
import importlib.util

class DistutilsLoader(importlib.abc.Loader):

def create_module(self, spec):
return importlib.import_module('setuptools._distutils')

def exec_module(self, module):
pass

return importlib.util.spec_from_loader('distutils', DistutilsLoader())

def spec_for_pip(self):
"""
Ensure stdlib distutils when running under pip.
See pypa/pip#8761 for rationale.
"""
if self.pip_imported_during_build():
return
clear_distutils()
self.spec_for_distutils = lambda: None

@staticmethod
def pip_imported_during_build():
"""
Detect if pip is being imported in a build script. Ref #2355.
"""
import traceback
return any(
frame.f_globals['__file__'].endswith('setup.py')
for frame, line in traceback.walk_stack(None)
)


DISTUTILS_FINDER = DistutilsMetaFinder()


def add_shim():
sys.meta_path.insert(0, DISTUTILS_FINDER)


def remove_shim():
try:
sys.meta_path.remove(DISTUTILS_FINDER)
except ValueError:
pass
1 change: 1 addition & 0 deletions venv/Lib/site-packages/_distutils_hack/override.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__import__('_distutils_hack').do_override()
1 change: 1 addition & 0 deletions venv/Lib/site-packages/distutils-precedence.pth
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim();
1 change: 1 addition & 0 deletions venv/Lib/site-packages/pip-21.0.1.dist-info/INSTALLER
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pip
20 changes: 20 additions & 0 deletions venv/Lib/site-packages/pip-21.0.1.dist-info/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading

0 comments on commit 0794b7d

Please sign in to comment.