2012-12-01 39 views
1

我正在創建一個程序,幫助解決二次方程 - 這只是一個棄用的佈局,但基本上當我輸入參數(ABC)它應該存儲它,然後我可以稍後使用它。存儲一個字符串通過。入門 - Tkinter/Python

這是我走到這一步,(不介意名稱和文本,它在丹麥):

Vara = StringVar() 
Varb = StringVar() 
Varc = StringVar() 

#Parabel 
def Parabel(): 

    parabel = Tk() 
    parabel.minsize(600, 400) 
    parabel.maxsize(600,400) 
    parabel.title("Parablens rødder") 

    pLabel = Label(parabel, text = "Parablens rødder").pack(side = TOP) 
    pLabel1 = Label(parabel, text = "Indtast parameterne A, B, C:").pack() 
    #A 
    pLabel2 = Label(parabel, text = "A:").pack() 
    pEntry1 = Entry(parabel, textvariable = Vara).pack() 
    #B 
    pLabel3 = Label(parabel, text = "B:").pack() 
    pEntry2 = Entry(parabel, textvariable = Varb).pack() 
    #C 
    pLabel4 = Label(parabel, text = "C:").pack() 
    pEntry3 = Entry(parabel, textvariable = Varc).pack() 

    pButton = Button(parabel, text = "OK", command = para).pack() 


def para(): 
    a = Vara.get() 
    b = Varb.get() 
    c = Varc.get() 

    print(a,b,c) # just to test if they got stored, 

從我讀過有關這應該工作,但是當我打印, b,c它變成空白。

回答

1

如果這是完整的程序,那麼它有幾個問題。在我的PC上它根本沒有運行(沒有GUI,例外),也許你可以運行它,但它不會做任何合乎邏輯的事情。這是爲什麼:

1)在調用Tk()之前,您無法創建StringVar。在我的代碼(試圖修復你的)我說在最開始的兩行:

from Tkinter import * 
root = Tk() 

2)您沒有激活的Tkinter的主循環。我說這條線在Parabel()的底部:

root.mainloop() 

3)我添加了一行調用你的函數:

Parabel() 

而且我得到了它運行完好。

+0

對不起,我忘了提及,這只是程序的一部分。 如果有幫助,我可以給你發送完整的程序嗎? 謝謝你的迴應。 – user1851594