Python / Tkinter - сумма меток - PullRequest
       0

Python / Tkinter - сумма меток

0 голосов
/ 09 марта 2020

Я разрабатываю приложение для расчета базы расчета для расчета налога (v_result.set и v_result2.set). Я хотел бы добавить оба в v_result3.set, но это дает ошибку. См. Ниже:

File "C:\Users\TESTES\Desktop\teeeeeeeeeeeeeeee.py", line 30, in calc
    v_result3.set(float(v_result + v_result2))
TypeError: unsupported operand type(s) for +: 'DoubleVar' and 'DoubleVar'

Следуйте полному коду ниже:

from tkinter import *

root = Tk()
root.geometry('350x350')


l_label = Label(root, text='Receita 1')
l_label.place(x=10, y=10)
e_entry = Entry(root)
e_entry.place(x=100, y=10)
l_label2 = Label(root, text='Receita 2')
l_label2.place(x=10, y=40)
e_entry2 = Entry(root)
e_entry2.place(x=100, y=40)
# ---
v_result = DoubleVar()
l_rst = Label(root, textvariable=v_result)
l_rst.place(x=10, y=100)
v_result2 = DoubleVar()
l_rst2 = Label(root, textvariable=v_result2)
l_rst2.place(x=10, y=140)
v_result3 = DoubleVar()
l_rst3 = Label(root, textvariable=v_result3)
l_rst3.place(x=10, y=220)


def calc():
        v_result.set(float(e_entry.get()) * 10 / 100)
        v_result2.set(float(e_entry2.get()) * 10 / 100)
        v_result3.set(float(v_result + v_result2))






bt = Button(root, text='Calc', command=calc)
bt.place(x=10, y=180)


root.mainloop()

Не могли бы вы мне помочь, пожалуйста?

1 Ответ

1 голос
/ 09 марта 2020

Вам нужно будет использовать DoubleVar.get() для доступа к содержащемуся значению:

def calc():
    v_result.set(float(e_entry.get()) * 10 / 100)
    v_result2.set(float(e_entry2.get()) * 10 / 100)
    v_result3.set(float(v_result.get() + v_result2.get()))

Тем не менее, вам будет проще читать, если вы будете работать с Tk I / O отдельно:

def calc():
    # Read...
    v1 = round(float(e_entry.get()), 1)
    v2 = round(float(e_entry2.get()), 1)

    # Compute...
    result = v1 + v2

    # Write...
    v_result.set(v1)
    v_result2.set(v2)
    v_result3.set(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...