From 5263a92c50860d0b97ccba6af36a0d171a8462c1 Mon Sep 17 00:00:00 2001 From: Michel Bats Date: Sun, 10 Dec 2023 14:21:03 +0100 Subject: [PATCH] Lesson #7 --- .../calculator.py | 120 ++++++++++++++++++ readme.md | 1 + 2 files changed, 121 insertions(+) create mode 100644 007. Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #7/calculator.py diff --git a/007. Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #7/calculator.py b/007. Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #7/calculator.py new file mode 100644 index 0000000..af28bc4 --- /dev/null +++ b/007. Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #7/calculator.py @@ -0,0 +1,120 @@ +from tkinter import * + +root = Tk() +root.title("Simple Calculator") + +e = Entry(root, width=35, borderwidth=5) +e.grid(row=0, column=0, columnspan=3, padx=10, pady=10) + +# e.insert(0, "") + + +def button_click(number): + # e.delete(0, END) + 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 == "subtraction": + e.insert(0, f_num - int(second_number)) + + if math == "multiplication": + e.insert(0, f_num * int(second_number)) + + if math == "division": + e.insert(0, f_num / int(second_number)) + + +def button_subtract(): + first_number = e.get() + global f_num + global math + math = "subtraction" + f_num = int(first_number) + e.delete(0, END) + + +def button_multiply(): + first_number = e.get() + global f_num + global math + math = "multiplication" + f_num = int(first_number) + e.delete(0, END) + + +def button_divide(): + first_number = e.get() + global f_num + global math + math = "division" + f_num = int(first_number) + e.delete(0, END) + + +# Define Buttons + +button_1 = Button(root, text="1", padx=40, pady=20, command=lambda: button_click(1)) +button_2 = Button(root, text="2", padx=40, pady=20, command=lambda: button_click(2)) +button_3 = Button(root, text="3", padx=40, pady=20, command=lambda: button_click(3)) +button_4 = Button(root, text="4", padx=40, pady=20, command=lambda: button_click(4)) +button_5 = Button(root, text="5", padx=40, pady=20, command=lambda: button_click(5)) +button_6 = Button(root, text="6", padx=40, pady=20, command=lambda: button_click(6)) +button_7 = Button(root, text="7", padx=40, pady=20, command=lambda: button_click(7)) +button_8 = Button(root, text="8", padx=40, pady=20, command=lambda: button_click(8)) +button_9 = Button(root, text="9", padx=40, pady=20, command=lambda: button_click(9)) +button_0 = Button(root, text="0", padx=40, pady=20, command=lambda: button_click(0)) +button_add = Button(root, text="+", padx=39, pady=20, command=button_add) +button_equal = Button(root, text="=", padx=91, pady=20, command=button_equal) +button_clear = Button(root, text="clear", padx=79, pady=20, command=button_clear) + +button_subtract = Button(root, text="-", padx=41, pady=20, command=button_subtract) +button_multiply = Button(root, text="*", padx=40, pady=20, command=button_multiply) +button_divide = Button(root, text="/", padx=41, pady=20, command=button_divide) + +# Put the buttons 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=0) +button_clear.grid(row=4, column=1, columnspan=2) +button_add.grid(row=5, column=0) +button_equal.grid(row=5, column=1, columnspan=2) + +button_subtract.grid(row=6, column=0) +button_multiply.grid(row=6, column=1) +button_divide.grid(row=6, column=2) + + +root.mainloop() diff --git a/readme.md b/readme.md index 8842657..5bd32b4 100644 --- a/readme.md +++ b/readme.md @@ -10,3 +10,4 @@ * [Creating Input Fields With TKinter - Python Tkinter GUI Tutorial #4](https://www.youtube.com/watch?v=7A_csP9drJw&list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV&index=4&pp=iAQB) * [Build A Simple Calculator App - Python Tkinter GUI Tutorial #5](https://www.youtube.com/watch?v=F5PfbC5ld-Q&list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV) * [Continue Building A Simple Calculator App - Python Tkinter GUI Tutorial #6](https://www.youtube.com/watch?v=XhCfsuMyhXo&list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV) +* [Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #7](https://www.youtube.com/watch?v=oq3lJdhnPp8&list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV)