我试图打印在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()
答案 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?