0

我是编程初学者,所以如果代码混乱或太长,我很抱歉。我的问题是:我被费率输入以及如何将所有内容放在一起以使转换有效?

谢谢你。

from tkinter import *

def convertDtoE():

    fromDtoE=fromDtoEVar
    fromDtoEVar.get()
    fromEtoD=fromEtoDVar
    fromEtoDVar.get()

    fromDtoEVar.set(fromEtoD)
def convertEtoD():

    fromDtoE=fromDtoEVar
    fromDtoEVar.get()
    fromEtoD=fromEtoDVar
    fromEtoDVar.get()

    fromEtoDVar.set(fromDtoE)
def main():
    window=Tk()

    global fromDtoEVar
    fromDtoEVar=DoubleVar()

    fromDtoEVar.set(0.0)

    global fromEtoDVar
    fromEtoDVar=DoubleVar()

    fromEtoDVar.set(0.0)

    aa=Label(window,text="Dollars")
    aa.pack()
    a=Entry(window,textvariable=fromDtoEVar)
    a.pack()
    rr=Label(window,text="Rate")
    rr.pack()
    rate=Entry(window)
    rate.pack()
    bb=Label(window,text="Euros")
    bb.pack()
    b=Entry(window,textvariable=fromEtoDVar)
    b.pack()
    c=Button(window, text="Convert Euros", command=convertEtoD)
    c.pack()
    d=Button(window, text="Convert Dollars", command=convertDtoE)
    d.pack()
    window.mainloop()
    main()
4

1 回答 1

0

我不确定你到底在问什么,但你的代码存在一个非常大的问题,你重复多次,所以我假设这就是你想要修复的:

fromDtoE=fromDtoEVar
fromDtoEVar.get()

这没有任何用处。它返回 的当前值DoubleVar,然后您将忽略该值。同时,您已将另一个名称绑定到DoubleVar自身,但随后您使用原始名称。我想你想要的是:

fromDtoE=fromDtoEVar.get()

现在,至少,您将复制实际的数字,而不是 Tk 变量的字符串表示形式,例如PY_VAR0.

您实际上仍然没有进行任何转换,只是来回复制数字。要解决这个问题,首先您需要实际访问 Rate 小部件中的值。您可以像处理其他两个小部件一样攻击 a DoubleVar,以相同的方式访问它的值,然后进行数学运算。

于 2013-10-22T17:23:53.123 回答