Почему мой калькулятор Tkinter возвращает только ноль? - PullRequest
0 голосов
/ 06 ноября 2019

Я довольно новичок в Tkinter и пытаюсь написать простой калькулятор. Моя проблема не имеет значения, какие целые числа я предоставляю виджет ввода, сумма всегда возвращается как ноль. Любая помощь будет принята с благодарностью.

Я пытался преобразовать переменные в глобальные переменные, давая мне тот же результат. Я также попытался преобразовать запись из StringVar () в int, но это приводит к недопустимой литеральной ошибке.

(ValueError: недопустимый литерал для int () с основанием 10: '')

def addRes():
    ni1 = int(na1.get())
    ni2 = int(na2.get())
    result = ni1 + ni2
    resAdd = str(result)
    Radd = Tk()
    Radd.geometry("50x50")
    addL = Label(Radd, text= resAdd).pack()


nEadd = Tk()
nEadd.geometry("200x200")
na1 = IntVar()
na2 = IntVar()
numVal1 = Entry(nEadd).place(x=20,y=10)
plusL = Label(nEadd, text= "+").place(x=20,y=30)
numVal2 = Entry(nEadd).place(x=20,y=50) 
addResult = partial(addRes)
numSubmit = Button(nEadd, text= "Submit", command = addResult).place(x=40,y=70)

1 Ответ

0 голосов
/ 06 ноября 2019

Хотя вы создаете два IntVar с, вы не связываете их с записью, поэтому они никогда не меняются.

Вам необходимо изменить следующие записи:

numVal1 = Entry(nEadd, textvariable=na1).place(x=20,y=10)
numVal2 = Entry(nEadd, textvariable=na2).place(x=20,y=50)

Кроме того, вам не следует создавать более одного экземпляра Tk. Если вам нужно другое окно, используйте Toplevel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...