При запуске кода выдаёт ошибку: "TypeError: unsupported operand type(s) for *: 'Entry' and 'Entry'"

Programmer228

Новичок
Пользователь
Май 18, 2023
2
0
1
Python:
# Import the necessary packages:
import math,random,tkinter,sys,os
from tkinter import *
from tkinter import ttk
from random import sample
import tkinter as tk

# Widgets:
window=Tk()
ch1=Entry(window,fg="black", bg="white", width=50)
ch2=Entry(window,fg="black", bg="white", width=50)
umBtn=Button(window) #Умножение
dBtn=Button(window)  #Деление
pBtn=Button(window)  #Добавление
mBtn=Button(window)  #Отнимание
dbBtn=Button(window) #Деление без остачи
odBtn=Button(window) #Остача от деления
vsBtn=Button(window) #Возведение в степень
resBtn=Button(window) #Сброс
answer=Label(window, relief='groove',width=2)

# Geometry:
umBtn.grid(row=1,column=0)
dBtn.grid(row=1,column=1)
pBtn.grid(row=2,column=0)
mBtn.grid(row=2,column=1)
dbBtn.grid(row=3,column=0)
odBtn.grid(row=3,column=1)
vsBtn.grid(row=4,column=0)
ch1.grid(row=1,column=2)
ch2.grid(row=1,column=3)
resBtn.grid(row=5,column=0)
answer.grid(row=0,column=0)

# Static Properties:
window.title("Calculator")
window.resizable(0,0)
umBtn.configure(text="Умножение")
dBtn.configure(text="Деление")
pBtn.configure(text="Добавление")
mBtn.configure(text="Отнимание")
dbBtn.configure(text="Деление без остачи")
odBtn.configure(text="Остача от деления")
vsBtn.configure(text="Возведение в степень")
resBtn.configure(text="Сброс")

#  Initial Properties:
answer.configure(text='...')
resBtn.configure(state=DISABLED)

# Functions:
def um():
    um=ch1*ch2
    answer.configure(text=um)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def d():
    d=ch1/ch2
    answer.configure(text=d)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)
    

def p():
    p=ch1+ch2
    answer.configure(text=p)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def m():
    m=ch1-ch2
    answer.configure(text=m)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def db():
    db=ch1//ch2
    answer.configure(text=db)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def od():
    od=ch1%ch2
    answer.configure(text=od)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def vs():
    vs=ch1**ch2
    answer.configure(text=vs)
    umBtn.configure(state=DISABLED)
    dBtn.configure(state=DISABLED)
    pBtn.configure(state=DISABLED)
    mBtn.configure(state=DISABLED)
    dbBtn.configure(state=DISABLED)
    odBtn.configure(state=DISABLED)
    vsBtn.configure(state=DISABLED)
    resBtn.configure(state=NORMAL)

def res():
    resBtn.configure(state=DISABLED)
    answer.configure(text="")
    umBtn.configure(state=NORMAL)
    dBtn.configure(state=NORMAL)
    pBtn.configure(state=NORMAL)
    mBtn.configure(state=NORMAL)
    dbBtn.configure(state=NORMAL)
    odBtn.configure(state=NORMAL)
    vsBtn.configure(state=NORMAL)

# Functions connected to buttons:
umBtn.configure(command=um)
dBtn.configure(command=d)
pBtn.configure(command=p)
mBtn.configure(command=m)
dbBtn.configure(command=db)
odBtn.configure(command=od)
vsBtn.configure(command=vs)
resBtn.configure(command=res)

# Main Loop:
window.mainloop()

У меня Windows 10, Python 3.11.3.
Не могу понять как провести математические действия с данными полученными с помощью виджета 'Entry'.
Пытался перевести в число на отдельной строке: int(ch1.get())
int(ch2.get()).
Пытался задать переменную с переведённым значением: val1=int(ch1.get())
val2=int(ch2.get()).
Помогите с кодом, если кто сталкивался с этой проблемой. Подскажите, как провести математические действие с теми данными.
 

Вложения

  • изображение_2023-05-20_201429219.png
    изображение_2023-05-20_201429219.png
    160,4 КБ · Просмотры: 2
  • изображение_2023-05-20_201515018.png
    изображение_2023-05-20_201515018.png
    26,1 КБ · Просмотры: 2

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
объекты entry нельзя умножать, или делать с ними другие математические действия
вам нужно получить из entry данные с помощью функции get(), проверить эти данные (привести к инту или к флоат), а потом уже делать математические операции
 
Последнее редактирование:

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