-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
57 lines (49 loc) · 2.26 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from tkinter import Tk, Frame, Button, Label
from common import root, display_frame, button_frame, displays, buttons, ALPHABET, extractor_read_input, read_input
root.title('Primitive Calculator')
root.configure(background='grey')
root.geometry('350x500')
root.rowconfigure(0, weight=1)
root.rowconfigure(1, weight=4)
root.columnconfigure(0, weight=1)
display_frame.grid(row=0, column=0, padx=5, ipadx=5, sticky='nsew')
for i in range(1): display_frame.columnconfigure(i, weight=1)
for i in range(len(displays)): display_frame.rowconfigure(i, weight=1)
display_frame.rowconfigure(len(displays), weight=3)
for i in range(len(displays)):
displays[i].grid(row=i, column=0, sticky='nsew')
# button_frame = Frame()
button_frame.grid(row=1, column=0, padx=5, ipadx=5, sticky='nsew')
# ALPHABET = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
# '+', '-', '*', '/', '=', 'CE', 'C', '⌫', '+/-', ',']
for i in range(5): button_frame.columnconfigure(i, weight=1)
for i in range(4): button_frame.rowconfigure(i, weight=1)
for index, char in enumerate(ALPHABET):
buttons[char] = (Button(button_frame, text=char, command=lambda c=char: read_input(c)))
if char.isdigit():
if char != '0':
buttons[char].grid(row=(9-int(char)) // 3, column=(int(char)-1) % 3, sticky='nsew')
else:
buttons[char].grid(row=3, column=1, sticky='nsew')
else:
if char == '+':
buttons[char].grid(row=0, column=3, sticky='nsew')
elif char == '-':
buttons[char].grid(row=1, column=3, sticky='nsew')
elif char == '*':
buttons[char].grid(row=2, column=3, sticky='nsew')
elif char == '/':
buttons[char].grid(row=3, column=3, sticky='nsew')
elif char == '=':
buttons[char].grid(row=3, column=4, sticky='nsew')
elif char == 'CE':
buttons[char].grid(row=1, column=4, sticky='nsew')
elif char == 'C':
buttons[char].grid(row=2, column=4, sticky='nsew')
elif char == '⌫':
buttons[char].grid(row=0, column=4, sticky='nsew')
elif char == '+/-':
buttons[char].grid(row=3, column=0, sticky='nsew')
elif char == '.':
buttons[char].grid(row=3, column=2, sticky='nsew')
root.mainloop()