Entry()。get()在Python 3.4中不起作用

时间:2014-04-28 23:46:54

标签: python tkinter

尽管所有尝试,我似乎无法使用Entry()。get()在Entry窗口中分配字符串。这是一段代码:

    Itx_bcn_ent = Entry(win).grid(row=1,column=1)

我定义了一个按钮来调用函数:

    btn = Button(win,text="Run",command=getnums).grid(row=5,column=3,padx=100)

这是功能:         def getnums():                  Itx_bcn = Itx_bcn_ent.get()

当我运行脚本时,出现以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1482, in __call__
    return self.func(*args)
  File "C:\Python34\voltage_substate_GUI.py", line 7, in getnums
    Itx_bcn = Itx_bcn_ent.get()
AttributeError: 'NoneType' object has no attribute 'get'

我已经看到构造使用Class StringVar()和带有Entry()对象的选项“textvariable =”,但这样做似乎过于复杂,因为它只是在条目中创建了一组额外的变量窗口和我想要分配的变量。

对此有何想法?

1 个答案:

答案 0 :(得分:3)

Entry.grid()会返回None,因此当您执行something = Entry(root).grid()时,您将获得something=None

在尝试使用该东西之前,这不是问题!这就是您收到'NoneType' object has no attribute 'get'错误的原因。

Itx_bcn_ent = Entry(win)
Itx_bcn_ent.grid(row=1,column=1)

现在您的按钮正常工作:),尽管您的btn =行存在同样的问题。我还没有重用那个任务,所以也许放弃它?

Button(win,text="Run",command=getnums).grid(row=5,column=3,padx=100)