Объект 'Event' не имеет атрибута 'e3' - PullRequest
0 голосов
/ 19 октября 2018
  • Привет, я новичок в Python, и я пытался создать простой калькулятор, где есть три поля, первое поле имеет предопределенное число.
  • Во втором поле вводится пользователь, а в третьем - произведение первых двух чисел.

  • Однако я ошибаюсь 'Событие 'У объекта нет атрибута' e3 '

Пожалуйста, помогите

    from tkinter import *

    class Calculator(Frame):
        def Widgets(self):
            self.e1 = Entry(self)
            self.e1.grid(row=1, column=1)
            self.e1.insert(0,1)

            self.e3 = Entry(self)
            self.e3.grid(row=1, column=3)

            def estimation_value_1(self):
                self.e3.insert(0, ((e1.get())*(e2.get())))

            self.e2 = Entry(self)
            self.e2.grid(row=1, column=2)
            self.e2.bind("<Return>", estimation_value_1)

        def __init__(self,initial):
            super(Calculator,self).__init__(initial)
            self.grid()
            self.Widgets()

    Window = Tk()
    Window.title("Error")
    Window.geometry("500x500")
    Evaluation_Tool = Calculator(Window)
    Window.mainloop()

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Спасибо, теперь это работает так, как предложил Инь.однако с небольшой коррекцией.Простое преобразование e1.get и e2.get в float делает его работоспособным

def estimation_value_1(event):
            self.e3.insert(0, ((float(self.e1.get()))*(float(self.e2.get()))))
0 голосов
/ 19 октября 2018
def estimation_value_1(self):
    self.e3.insert(0, ((e1.get())*(e2.get())))

первый параметр функции обратного вызова estimation_value_1 - это событие KeyPress.В вашей функции self - это событие KeyPress, а не объект Calculator.

Вы можете реализовать следующим образом:

def estimation_value_1(event):
    self.e3.insert(0, ((self.e1.get())*(self.e2.get())))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...