在 tkinter 条目小部件中输入的数据包含“NoneType”对象并且没有属性“get”

三元催化剂

我正在尝试创建一个收集实验数据的程序。我已成功创建了一个包含标签和条目小部件的表。但是,当尝试通过收集输入的数据使条目小部件起作用时,我的脚本失败了。

import tkinter as tk
from PIL import ImageTk, Image


class Window(tk.Frame):

def __init__(self, master=None):
   tk.Frame.__init__(self, master)               
   self.master = master
   self.init_window()
def init_window(self):
   self.master.title("Data Analyser")

   tk.Label(self.master, text="Cell Number").grid(row=1, sticky=tk.W)
   tk.Label(self.master, text="1").grid(row=2) 
   tk.Label(self.master, text="1").grid(row=2)      


   tk.Label(self.master, text="Treatment").grid(row=1, column=2)
   Treatment_1 = tk.Entry(self.master).grid(row=2,column=2)
   Treatment_2 = tk.Entry(self.master).grid(row=3,column=2)

   tk.Button(self.master, text = "Submit", command = self.getInput).grid(row = 14, column = 2)

def getInput(self):    
   global Treatment_Data
   a = Treatment_1.get()
   b = Treatment_2.get()
   Treatment_Data = [a,b]



root = tk.Tk()
root.geometry("500x450")
app = Window(root) 
root.mainloop()                                                                                                                                                               

我希望上面的代码会生成一个名为“Treatment_Data”的全局变量,但不幸的是,当我单击“提交”小部件时收到以下错误消息:

 Traceback (most recent call last):
    File "C:\Users\xxxx\lib\tkinter\__init__.py", line 1550, in __call__
    return self.func(*args)
    File "<ipython-input-134-2b5d212a0dcf>", line 47, in getInput
       a = self.Treatment_1.get()
  AttributeError: 'NoneType' object has no attribute 'get'

任何澄清将不胜感激。

里沙巴·米什拉

您需要使用 self 将 Treatment_1 和 Treatment_2 作为类变量,然后才能在回调函数 getInput() 中访问它们。
评论中提到的另一件事是您需要将两部分分开 -
1. 创建一个 Entry Widget 和
2. 将其放置在网格中。
您应该创建一个 Entry 小部件并将其存储在 Treatment_1 中。完成后,您应该使用 Treatment_1 变量将小部件放置在网格中的所需位置。

import tkinter as tk
from PIL import ImageTk, Image

class Window(tk.Frame):
   def __init__(self, master=None):
      tk.Frame.__init__(self, master)               
      self.master = master
      self.init_window()
   def init_window(self):
      self.master.title("Data Analyser")
      tk.Label(self.master, text="Cell Number").grid(row=1, sticky=tk.W)
      tk.Label(self.master, text="1").grid(row=2) 
      tk.Label(self.master, text="1").grid(row=2)      
      tk.Label(self.master, text="Treatment").grid(row=1, column=2)
      self.Treatment_1 = tk.Entry(self.master)
      self.Treatment_2 = tk.Entry(self.master)
      self.Treatment_1.grid(row=2,column=2)
      self.Treatment_2.grid(row=3,column=2)
      tk.Button(self.master, text = "Submit", command = self.getInput).grid(row = 14, column = 2)
   def getInput(self):    
      global Treatment_Data
      a = self.Treatment_1.get()
      b = self.Treatment_2.get()
      Treatment_Data = [a,b]
      print(Treatment_Data)

root = tk.Tk()
root.geometry("500x450")
app = Window(root) 
root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tkinter:AttributeError:NoneType对象没有属性<属性名称>

Tkinter中的小部件验证

NoneType对象没有要获取的属性(Tkinter)

在条目小部件tkinter中的每个索引之间插入没有空格的列表

Selenium-Python没有从Tkinter条目小部件获取输入-TypeError:类型为'function'的对象没有len()

Tkinter-创建动态条目小部件

无法显示从sqlite到tkinter条目小部件的查询数据

如何选择带有绑定密钥的tkinter条目小部件?

条目小部件Tkinter。我很困惑

在Tkinter条目小部件中获取光标位置

tkinter条目小部件.get无法获取数据

Tkinter-在没有输入小部件的情况下获取输入?

PYTHON Nonetype 对象没有属性 .get() tkinter

如何在tkinter python中保存从条目小部件输入的数据

Tkinter 条目小部件中的块插入光标样式

Tkinter: AttributeError: 'NoneType' 对象没有属性 'insert'

Tkinter 条目小部件插入光标

如何根据用户输入在 tkinter 中创建动态条目小部件并将这些条目小部件的输入存储在列表中

如何修复 AttributeError: 'NoneType' 对象没有 tkinter 条目的属性 'get'

tkinter 条目小部件的验证

当我尝试将文件打开到 tkinter 文本小部件中时,但收到错误“'str' 对象没有属性 'tk'”

“str”对象在 Tkinter 回调中没有属性“get”

如何更改条目小部件 tkinter 中的文本

如何从 tkinter 中的条目小部件返回用户输入

AttributeError: 'NoneType' 对象没有属性 'get'(tkinter)

使用 Tkinter 时,NoneType 对象在 Python 中没有属性“销毁”错误

tkinter 小部件属性列表

没有父主控的 Tkinter 小部件

无法从 tkinter 窗口中的 DateEntry 小部件获取值。- 对象没有属性“get_date”