2013-10-22 136 views
0

我是一名編程初學者,所以如果代碼混亂或者太長,我很抱歉。 我的問題是:我對速度輸入以及如何將所有東西放在一起以使轉換工作?Beginner python(Tkinter) - 如何索要匯率來進行貨幣換算?

謝謝。

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() 
+0

請修復您的行縮進 – Dunno

+0

也請修復明顯隨機化的換行符和像第一個fromDtoEVar.set行上的'*'這樣的雜散字符。 – abarnert

+0

作爲一個方面說明,它真的有助於給你的變量有意義的名稱,而不是'a'和'aa'。 (或者,如果你沒有任何理由讓它們在周圍,不要給它們任何名字 - 只是'Entry(window,textvariable = fromDtoEVar).pack()')。 – abarnert

回答

0

我不知道你問什麼,但有一個與你的代碼,你多次重複一個非常大的問題,所以我會認爲這是你想要什麼固定的:

fromDtoE=fromDtoEVar 
fromDtoEVar.get() 

這沒什麼用處。它返回DoubleVar的當前值,然後忽略。同時,您已將自己的另一個名稱綁定到DoubleVar本身,但是您使用原始名稱。我想你想的是:

fromDtoE=fromDtoEVar.get() 

現在,至少,你會真正各地複製,而不是Tk的變量,如PY_VAR0的字符串表示的數字。

你還沒有做任何轉換,只是來回複製數字。要解決這個問題,首先您需要實際訪問Rate小部件中的值。您可以攻擊DoubleVar,與您使用其他兩個小部件的方式相同,以相同的方式訪問其值,然後執行數學運算。

+0

非常有幫助的評論。謝謝。 –