簡體   English   中英

Python/Tkinter - 總和標簽

[英]Python/Tkinter - sum labels

我正在開發一個應用程序來計算稅收計算的計算基礎(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()

請問你能幫幫我嗎?

您將需要使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM