from tkinter import *
from tkinter.messagebox import *
def about():
showinfo("информация о программе")
def setting():
win1 = Tk()
win1.geometry("100x80+600+100")
def calc(name):
if name in "0123456789+-*/.()":
entry.insert(END, name)
elif name == "x²":
entry.insert(END, "**(2)")
elif name == "x³":
entry.insert(END, "**(3)")
elif name == "√":
entry.insert(END, "**(0.5)")
elif name == "C":
entry.delete(0, END)
elif name == "←":
entry.delete(len(entry.get())-1) # длина строки в поле ввода - 1
elif name == "=":
try:
result = eval(entry.get())
stroka = "="+str(result)
entry.insert(END, stroka)
except ZeroDivisionError:
showerror("Ошибка", "Деление на ноль")
except SyntaxError or NameError:
showerror("Ошибка", "Недопустимый синтаксис")
except ValueError:
showerror("Ошибка","недопустимая операция")
win = Tk()
win.title("Калькулятор")
win.resizable(width=False, height=False)
# главное меню окна
mainmenu = Menu(win)
win.config(menu=mainmenu)
# пункт меню - команда
item1 = mainmenu.add_command(label="О нас", command=about)
# пункт меню - под меню
item2 = Menu(mainmenu, tearoff=0)
mainmenu.add_cascade(label="Настройки", menu=item2)
item2.add_command(label="Темы", command=setting)
item2.add_separator()
# поле ввода
entry = Entry(width="60", bd=3, relief=SUNKEN)
entry.grid(row=0, columnspan=8)
# кнопки
# список надписей кнопок
buttons_name = ["7", "8", "9", "0", "+", "-", "*", "/",
"4", "5", "6", "x²", "x³", "√", "(", ")",
"1", "2", "3", ".", "←", "C", "=", "", ]
# список самих кнопок
buttons_all = []
c = 0 # номер текущего столбца
r = 1 # номер текущей строки
for st in buttons_name:
cmd = lambda x=st: calc(x)
btn = Button(win, text=st, width=4, bd=4, command=cmd, bg="lime") #цвет, можете выбрать свой
btn.grid(row=r, column=c, padx=1, pady=1)
# добавляем новую созданную кнопку в список всех кнопок
buttons_all.append(btn)
c += 1
if c > 7:
c = 0
r += 1
win.mainloop()
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
from tkinter import *
from tkinter.messagebox import *
def about():
showinfo("информация о программе")
def setting():
win1 = Tk()
win1.geometry("100x80+600+100")
def calc(name):
if name in "0123456789+-*/.()":
entry.insert(END, name)
elif name == "x²":
entry.insert(END, "**(2)")
elif name == "x³":
entry.insert(END, "**(3)")
elif name == "√":
entry.insert(END, "**(0.5)")
elif name == "C":
entry.delete(0, END)
elif name == "←":
entry.delete(len(entry.get())-1) # длина строки в поле ввода - 1
elif name == "=":
try:
result = eval(entry.get())
stroka = "="+str(result)
entry.insert(END, stroka)
except ZeroDivisionError:
showerror("Ошибка", "Деление на ноль")
except SyntaxError or NameError:
showerror("Ошибка", "Недопустимый синтаксис")
except ValueError:
showerror("Ошибка","недопустимая операция")
win = Tk()
win.title("Калькулятор")
win.resizable(width=False, height=False)
# главное меню окна
mainmenu = Menu(win)
win.config(menu=mainmenu)
# пункт меню - команда
item1 = mainmenu.add_command(label="О нас", command=about)
# пункт меню - под меню
item2 = Menu(mainmenu, tearoff=0)
mainmenu.add_cascade(label="Настройки", menu=item2)
item2.add_command(label="Темы", command=setting)
item2.add_separator()
# поле ввода
entry = Entry(width="60", bd=3, relief=SUNKEN)
entry.grid(row=0, columnspan=8)
# кнопки
# список надписей кнопок
buttons_name = ["7", "8", "9", "0", "+", "-", "*", "/",
"4", "5", "6", "x²", "x³", "√", "(", ")",
"1", "2", "3", ".", "←", "C", "=", "", ]
# список самих кнопок
buttons_all = []
c = 0 # номер текущего столбца
r = 1 # номер текущей строки
for st in buttons_name:
cmd = lambda x=st: calc(x)
btn = Button(win, text=st, width=4, bd=4, command=cmd, bg="lime") #цвет, можете выбрать свой
btn.grid(row=r, column=c, padx=1, pady=1)
# добавляем новую созданную кнопку в список всех кнопок
buttons_all.append(btn)
c += 1
if c > 7:
c = 0
r += 1
win.mainloop()