Добро пожаловать в стек!
Я просмотрел ваш код, я смог сделать то, что вы просите. В вашем коде было несколько ошибок:
а) у вас было self.add_buton
и self.add_button
, что вызвало ошибку.
b) self.input1 = 0
и self.input2 = 0
не требуются.
c) Вы вызывали self.add()
в качестве команды, и вы должны вызывать self.add
. При вызове в качестве команды вам не нужно ()
d) input1 = Entry(master)
должно быть self.input1 = tk.Entry(master)
e) Вы должны преобразовать свои входные значения в int
или float
, иначе это будет просто одно значение в конце другого. (Например, 1 + 5 = 15
, тогда как int(1) + int(5) = 6
Вот ваш код с полями ввода, работающими как надо. У меня import tkinter as tk
, следовательно, почему это tk.Entry
from tkinter import *
import tkinter as tk
class Calculator:
#-------------------------------------------------
def __init__(self, master):
self.master = master
master.title("Calculator")
self.close_button = Button(master, text = "Close", command = master.destroy)
Label(master, text = "First Digit").grid(row = 0)
Label(master, text = "Second Digit").grid(row = 1)
self.input1 = tk.Entry(bd=5, width=35, background='gray35', foreground='snow')
self.input2 = tk.Entry(bd=5, width=35, background='gray35', foreground='snow')
self.input1.grid(row = 0, column = 1)
self.input2.grid(row = 1, column = 1)
self.close_button.grid(row = 2, column = 0)
self.add_button = tk.Button(master, text = "Add", command = self.add)
self.add_button.grid(row = 2, column = 1)
master.configure(background = 'grey')
return
#-------------------------------------------------
def add(self):
val = self.input1.get()
print(val)
#-------------------------------------------------
#-------------------------------------------------
root = Tk()
calc = Calculator(root)
root.mainloop()
Теперь это должно работать так, как вы этого хотели. Переменные внутри записи могут быть изменены в соответствии с требованиями. Вы правильно назвали значение записи с self.input1.get()
.
Надеюсь, это помогло.