通过存储字符串。入门 - Tkinter / Python

时间:2012-12-01 17:38:00

标签: python tkinter tkinter-entry

我正在创建一个有助于解决二次方程的程序 - 这只是布局的弃儿,但实质上是在我输入参数时ABC)它应该存储它然后我可以在以后使用它。

这是我到目前为止所得到的(不要介意名称和文字,它是丹麦语):

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,

据我所知,这应该有效,但是当我打印a,b,c时,它会显示为空白。

1 个答案:

答案 0 :(得分:1)

如果这是完整的程序,那么它有一些问题。在我的电脑上它根本没有运行(没有GUI,例外),也许你可以运行它,但它不会做任何逻辑。这就是原因:

1)在调用Tk()之前,您无法创建StringVar。在我的代码中(试图修复你的代码)我在最开始添加了两行:

from Tkinter import *
root = Tk()

2)你没有激活Tkinter的主循环。我在Parabel()的底部添加了这一行:

root.mainloop()

3)我添加了一行调用你的函数:

Parabel()

我把它运行好了。