Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##Имопртируемые модули
- from tkinter import *
- import math
- ##Окно калькулятора
- tk = Tk()
- tk.title('Простой калькулятор')
- tk.resizable(0,0)
- ##Поле ввода
- operator = ''
- text = StringVar()
- calculator_entry = Entry(tk, font = ('arial', 20, 'bold'), justify = 'right', textvariable = text, width = 32, bd = 3)
- calculator_entry.grid(row = 0, column = 0, columnspan = 6)
- calculator_entry.insert(0, '0')
- ##Логика калькулятора
- def btnClick(numbers):
- global operator
- if text == 0:
- operator = ''
- operator = operator + str(numbers)
- text.set(operator)
- def btnClear():
- global operator
- operator = ''
- text.set('0')
- def btnEquals():
- try:
- global operator
- sumup = str(eval(operator))
- text.set(sumup)
- operator = sumup
- except:
- text.set('Ошибка!')
- ##Кнопки калькулятора
- btn7 = Button(tk, text = '7', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(7)).grid(column = 0, row = 1)
- btn8 = Button(tk, text = '8', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(8)).grid(column = 1, row = 1)
- btn9 = Button(tk, text = '9', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(9)).grid(column = 2, row = 1)
- btnplus = Button(tk, text = '+', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('+')).grid(column = 3, row = 1)
- btndegree = Button(tk, text = 'x²', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('x²')).grid(column = 4, row = 1)
- btnplusandminus = Button(tk, text = '±', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('±')).grid(column = 5, row = 1)
- btn4 = Button(tk, text = '4', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(4)).grid(column = 0, row = 2)
- btn5 = Button(tk, text = '5', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(5)).grid(column = 1, row = 2)
- btn6 = Button(tk, text = '6', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(6)).grid(column = 2, row = 2)
- btnminus = Button(tk, text = '-', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('-')).grid(column = 3, row = 2)
- btnradical = Button(tk, text = '√', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('√')).grid(column = 4, row = 2)
- btn7percent = Button(tk, text = '%', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('%')).grid(column = 5, row = 2)
- btn1 = Button(tk, text = '1', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(1)).grid(column = 0, row = 3)
- btn2 = Button(tk, text = '2', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(2)).grid(column = 1, row = 3)
- btn3 = Button(tk, text = '3', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(3)).grid(column = 2, row = 3)
- btnmultiplication = Button(tk, text = '*', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('*')).grid(column = 3, row = 3)
- btnopenbracket = Button(tk, text = '(', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('(')).grid(column = 4, row = 3)
- btnbackspace = Button(tk, text = '⌫', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('⌫')).grid(column = 5, row = 3)
- btnclear = Button(tk, text = 'C', font = ('arial', 15, 'bold'), width = 6, height = 3, command = btnClear).grid(column = 0, row = 4)
- btn0 = Button(tk, text = '0', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(0)).grid(column = 1, row = 4)
- btnpoint = Button(tk, text = '.', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('.')).grid(column = 2, row = 4)
- btndivision = Button(tk, text = '÷', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick('÷')).grid(column = 3, row = 4) ###
- btnclosebracket = Button(tk, text = ')', font = ('arial', 15, 'bold'), width = 6, height = 3, command = lambda:btnClick(')')).grid(column = 4, row = 4)
- btneval = Button(tk, text = '=', font = ('arial', 15, 'bold'), width = 6, height = 3, command = btnEquals).grid(column = 5, row = 4)
- ##Цикл обработки событий
- tk.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment