Python,' tkinter'没有属性' get'

时间:2017-05-25 15:22:26

标签: python tkinter

我试图打印在GUI中输入的值xf_in

但是,当我按下run按钮时,我收到以下错误消息:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\My_Name\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:/Users/My_Name/Python Scripts/test/gui.py", line 6, in EP
    xf_In = tk.get(e_xf)
AttributeError: module 'tkinter' has no attribute 'get'

我试图在网上找到错误的来源,但无济于事。

提前感谢您提供任何帮助

我的代码如下:

import tkinter as tk
from PIL import ImageTk as imtk
from PIL import Image as im

def EP(): # Enter inputs from values typed in
      xf_In = tk.get(e_xf)
      print(xf_In)

root = tk.Tk()

l_xf = tk.Label(root, text="xA of Feed").grid(row=0)

e_xf = tk.Entry(root).grid(row=0, column=1)       


run = tk.Button(root, text="Run", command=EP).grid(row=8, column=0, columnspan = 2)

img = imtk.PhotoImage(im.open("x.png"))
panel = tk.Label(root, image = img).grid(row = 0, column = 2, rowspan = 7)

root.mainloop()

1 个答案:

答案 0 :(得分:0)

如错误消息所示,tk模块没有名为get的函数。它可能有很多类,其实例具有get方法,但您无法按照自己的方式访问它们。

如果您尝试获取条目的内容,则应将其指定为名称,然后在其上调用get

def EP(): # Enter inputs from values typed in
      xf_In = e_xf.get(e_xf)
      print(xf_In)

#...

e_xf = tk.Entry(root)
e_xf.grid(row=0, column=1)

请注意,此分配与执行e_xf = tk.Entry(root).grid(row=0, column=1)不同。如果这样做,那么e_xf将绑定到grid的返回值,而不是Entry实例。 grid返回None,因此尝试在其上调用get只会给你一个AttributeError。相关阅读:Why do my Tkinter widgets get stored as None?