192.84K
Категория: ПрограммированиеПрограммирование

Создание калькулятора, используя tkinter

1.

Создание калькулятора,
используя tkinter

2.

Основные компоненты
Поле ввода чисел
Кнопки с
математическими
операциями
Кнопки с цифрами

3.

Окно калькулятора
import tkinter as tk
calculate = tk.Tk()
calculate.geometry("240x260+100+200")
calculate['bg'] = '#555555'
calculate.title('калькулятор')
calculate.mainloop()

4.

row
Расположение кнопок в grid
column

5.

Поле ввода и кнопки
calc=tk.Entry(calculate)
calc.grid(row = 0, column = 0)
tk.Button(text='1').grid(row=1, column=0)
tk.Button(text='2').grid(row=1, column=1)
tk.Button(text='3').grid(row=1, column=2)
tk.Button(text='4').grid(row=2, column=0)
tk.Button(text='5').grid(row=2, column=1)
tk.Button(text='6').grid(row=2, column=2)
tk.Button(text='7').grid(row=3, column=0)
tk.Button(text='8').grid(row=3, column=1)
tk.Button(text='9').grid(row=3, column=2)
tk.Button(text='0').grid(row=4, column=0)

6.

Настройка размера кнопок
calculate.grid_columnconfigure(0,minsize=60)
calculate.grid_columnconfigure(1,minsize=60)
calculate.grid_columnconfigure(2,minsize=60)
calculate.grid_rowconfigure(1,minsize=60)
calculate.grid_rowconfigure(2,minsize=60)
calculate.grid_rowconfigure(3,minsize=60)
calculate.grid_rowconfigure(4,minsize=60)

7.

Функции для ввода чисел и создания
кнопок
def add_digits(digit):
value = calc.get() + str(digit)
calc.delete(0,tk.END)
calc.insert(0, value)
def make_digit_button(digit):
return tk.Button(text=digit, bd=5, font=('Arial',13),
command=lambda:add_digits(digit))

8.

Кнопки ввода математических операций
def make_operation_button(operation):
return tk.Button(text=operation, bd=5, font=('Arial',13),fg=’red’,
command=lambda:add_digits(operation))
make_operation_button('+').grid(row=1, column=3, stick='wens', padx=5,
pady=5)
make_operation_button('-').grid(row=2, column=3, stick='wens', padx=5,
pady=5)
make_operation_button('*').grid(row=3, column=3, stick='wens', padx=5,
pady=5)
make_operation_button('/').grid(row=4, column=3, stick='wens', padx=5,
pady=5)

9.

Замена знаков и нуля в начале
def add_digits(digit):
value = calc.get()
if value[0]='0':
value = value[1:]
calc.delete(0,tk.END)
calc.insert(0, value+digit)
def add_operation(operation):
value = calc.get()
if value[-1] in '-+*/':
value=value[:-1]
calc.delete(0,tk.END)
calc.insert(0, value+operation)
English     Русский Правила