Калькулятор python

Valeria

Новичок
Пользователь
Ноя 16, 2020
1
0
1
Здравствуйте! В школе задали задание:
Модифицируйте калькулятор из 2-го задания, чтобы, помимо кнопок, действие определялось (вызывалось) по комбинациям клавиш (можно с щелчком или движением мыши).

Список сочетаний пишется в виде надписи на форме, под полем ввода. Для многострочной надписи используем конструкцию вида t = Text(root, font='Arial 14', wrap='word'), где Text - многострочное поле, последний параметр - перенос по словам. Добавить текст можно командой t.insert(END, "Text \n Text2...")

У меня уже есть код из "второго задания"
Можете Вы мне помочь с этим?


from tkinter import *
from math import*
class Main(Frame):
def __init__(self, root):
super(Main, self).__init__(root)
self.build()
def build(self):
self.formula = "0"
self.lbl = Label(text=self.formula, font=("Times New Roman", 21, "bold"), bg="#000", foreground="#FFF")
self.lbl.place(x=11, y=50)
btns = [
"C", "DEL", "cos", "=",
"1", "2", "3", "M",
"4", "5", "6", "X^3",
"7", "8", "9", "√‎",
"(", "0", "F", "X^2",
]
x = 10
y = 140
for bt in btns:
com = lambda x=bt: self.logicalc(x)
Button(text=bt, bg="#FFF",
font=("Times New Roman", 15),
command=com).place(x=x, y=y,
width=115,
height=79)
x += 117
if x > 400:
x = 10
y += 81
def logicalc(self, operation):
if operation == "C":
self.formula = ""
elif operation == "DEL":
self.formula = self.formula[0:-1]
elif operation == "X^2":
self.formula = str((eval(self.formula))**2)
elif operation == "=":
self.formula = str(eval(self.formula))
elif operation == "M":
import math
self.formula = math.fabs(float(self.formula))
elif operation == "X^3":
self.formula = str((eval(self.formula))**3)
elif operation == "√‎":
from math import sqrt, exp
self.formula = (sqrt(float(self.formula)))
elif operation == "cos":
import math
q=degrees(float(self.formula))
self.formula=cos(float(q))
elif operation == "F":
import math
self.formula = factorial(float(self.formula))
else:
if self.formula == "0":
self.formula = ""
self.formula += operation
self.update()
def update(self):
if self.formula == "":
self.formula = "0"
self.lbl.configure(text=self.formula)

if __name__ == '__main__':
root = Tk()
root["bg"] = "#000"
root.geometry("485x550+200+200")
root.title("Калькулятор")
root.resizable(False, False)
app = Main(root)
app.pack()
root.mainloop()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 569
456
83
код вставляйте через теги code, соблюдая отступы в питоне они важны
 

Форум IT Специалистов