1

我正在创建一个有助于求解二次方程的程序 - 这只是布局的弃子,但本质上,当我输入参数 (和) 时A,它应该存储它,然后我可以稍后使用它。BC

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

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 时,它会变成空白。

4

1 回答 1

1

如果这是完整的程序,那么它有一些问题。在我的 PC 上它根本没有运行(没有 GUI,异常),也许你可以运行它,但它不会做任何合乎逻辑的事情。这就是为什么:

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

from Tkinter import *
root = Tk()

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

root.mainloop()

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

Parabel()

我让它运行正常。

于 2012-12-01T19:42:48.433 回答