【问题标题】:Tkinter, retrieving value from an entry [duplicate]Tkinter,从条目中检索值[重复]
【发布时间】:2016-05-11 19:46:52
【问题描述】:

我正在使用 Tkinter 在 python 中制作一个简单的 GUI 程序。问题是当我尝试使用按钮从我的条目中检索值时,它会返回一个error()

print(ex1.get())
AttributeError: 'NoneType' object has no attribute 'get'

如何避免这种情况?

这是我的代码:

root = Tk()

root.minsize(300,300)
root.maxsize(300,300)


n = ttk.Notebook()

f1 = Frame(n,height=280,width=280)
f1.propagate(0)
lx1 = Label(f1,text="x",width=5).grid(row = 1,column=0) 
ex1 = Entry(f1,width = 10).grid(row = 1,column = 1)

ly1 = Label(f1,text="y",width=5).grid(row=3,column=0)
ey1 = Entry(f1,width = 10).grid(row=3,column = 1)

def value():
    print(ex1.get())


Bcreate = Button(f1,text="CREATE",command=value).grid(row = 10,column =  5)
n.add(f1,text="add point")

f2 = Frame(n)
n.add(f2,text="draw line")


n.pack()

【问题讨论】:

  • 我有一段时间只是让它运行任何东西。您可以包含任何其他代码吗?我想一定有一个import tkinter 或类似的东西。另外,很确定您需要在您制作的各种对象中使用.pack(),例如ex1

标签: python user-interface tkinter tkinter-entry


【解决方案1】:

请阅读如何发布正确的MCVE

这里有一个解决您的问题:

from tkinter import Tk, Entry

root = Tk()
ent = Entry(root).pack()
print(ent)
print(ent.get())

打印出来

None
Traceback (most recent call last):
  File "F:\Python\mypy\tem.py", line 6, in <module>
    print(ent.get())
AttributeError: 'NoneType' object has no attribute 'get'

此时,.pack() 返回None 应该很明显了。所以改为绑定 Entry 返回的小部件。

from tkinter import Tk, Entry

root = Tk()
ent = Entry(root)
ent.pack()
print(ent)
print(ent.get())

得到

.2425099144832
got  .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2021-11-15
    • 2022-09-23
    相关资源
    最近更新 更多