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

あなたが何を求めているのか正確にはわかりませんが、コードには複数回繰り返すという非常に大きな問題が1つあります。そのため、それを修正したいと思います。

fromDtoE=fromDtoEVar
fromDtoEVar.get()

これは何の役にも立ちません。の現在の値を返しますがDoubleVar、無視します。DoubleVarその間、別の名前をそれ自体にバインドしましたが、元の名前を使用します。あなたが望んでいたのは次のとおりだと思います:

fromDtoE=fromDtoEVar.get()

少なくとも、 のような Tk 変数の文字列表現ではなく、実際に数値をコピーすることになりますPY_VAR0

数値を前後にコピーするだけで、実際には変換を行っていません。これを修正するには、まず Rate ウィジェットの値に実際にアクセスする必要があります。他の 2 つのウィジェットと同じ方法でこれを攻撃DoubleVarし、同じ方法でその値にアクセスして、計算を行うだけです。

于 2013-10-22T17:23:53.123 に答える