【问题标题】:storing a string via. Entry - Tkinter/Python通过存储字符串。入门 - Tkinter/Python
【发布时间】:2012-12-01 17:38:00
【问题描述】:

我正在创建一个有助于求解二次方程的程序 - 这只是布局的弃儿,但基本上当我输入参数(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 时,它会出现空白。

【问题讨论】:

    标签: python tkinter tkinter-entry


    【解决方案1】:

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

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

    from Tkinter import *
    root = Tk()
    

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

    root.mainloop()
    

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

    Parabel()
    

    我让它运行正常。

    【讨论】:

    • 对不起,我忘了说,这只是程序的一部分。如果有帮助,我可以把完整的程序发给你吗?感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2021-02-10
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多