- Button
Solution: Tk - Calculator with buttons
examples/tk/calculator_with_buttons.py
import tkinter as tk app = tk.Tk() app.title('Calculator') label = tk.Label(app, width=50, #height=2, font=['Curier', 20], bg='white', ) label.pack() def backspace(): if len(label['text']) > 0: label['text'] = label['text'][0:-1] def clear(): label['text'] = '' def calc(): inp = label['text'] print(inp) out = eval(inp) label['text'] = out def close(): app.destroy() exit() def enter(value): label['text'] += value def add_button(num, frame): btn = tk.Button(frame, text=num, width=25, command=lambda : enter(num)) btn.pack(side="left") buttons[num] = btn numbers_frame = tk.Frame(app) numbers_frame.pack() numbers_row = {} numbers_row[1] = tk.Frame(numbers_frame) numbers_row[1].pack(side="top") numbers_row[2] = tk.Frame(numbers_frame) numbers_row[2].pack(side="top") numbers_row[3] = tk.Frame(numbers_frame) numbers_row[3].pack(side="top") ops_row = tk.Frame(numbers_frame) ops_row.pack(side="top") buttons = {} add_button('1', numbers_row[1]) add_button('2', numbers_row[1]) add_button('3', numbers_row[1]) add_button('4', numbers_row[2]) add_button('5', numbers_row[2]) add_button('6', numbers_row[2]) add_button('7', numbers_row[3]) add_button('8', numbers_row[3]) add_button('9', numbers_row[3]) for op in ['+', '-', '*', '/']: add_button(op, ops_row) calc_btn = tk.Button(app, text='=', command=calc) calc_btn.pack() clear_btn = tk.Button(app, text='C', command=clear) clear_btn.pack() backspace_btn = tk.Button(app, text='Bksp', command=backspace) backspace_btn.pack() close_btn = tk.Button(app, text='Close', width=25, fg='red', command=close) close_btn.pack() app.mainloop()