Tkinter Entry Field Capture AttributeError:
Tkinter Entry Field Capture AttributeError:
我想从输出下定义的第二个 window 捕获输入字段中的数据。当我单击提交时收到以下消息: AttributeError: 'NoneType object has no attribute 'get'.
我觉得这应该很容易解决,但不明白为什么我不能从输入字段中捕获数据?
from tkinter import *
import xlsxwriter
class MyFirstGUI:
def __init__ (self, master):
master.title("Main")
master.geometry("400x400+230+160")
button1 = Button(master, text="1", command= self.output).grid(row=0, column=0)
def output(self):
cw1= Toplevel(root)
cw1.title("cw1")
cw1.geometry("400x300+160+160")
self.b2 = Button(cw1, text="Submit",command = self.write_to_xlsx).grid(row=0, column=2)
self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0)
self.e2 = Entry(cw1).grid(row=0, column=1)
def write_to_xlsx(self):
workbook = xlsxwriter.Workbook('tkintertest19.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write_string('C1', self.e2.get())
workbook.close()
root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()
你需要做的就是分割线
self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0)
进入
self.l2 = Label(cw1, text = "New Specimen")
self.l2.grid(row=0, column=0)
这可能看起来不直观,grid
/pack
/place
函数 return None
,所以整个 shebang (Label().grid()
) returns None
。解决办法就是简单地将它拆分,以便在使用 .get()
时得到正确的东西。
我想从输出下定义的第二个 window 捕获输入字段中的数据。当我单击提交时收到以下消息: AttributeError: 'NoneType object has no attribute 'get'.
我觉得这应该很容易解决,但不明白为什么我不能从输入字段中捕获数据?
from tkinter import *
import xlsxwriter
class MyFirstGUI:
def __init__ (self, master):
master.title("Main")
master.geometry("400x400+230+160")
button1 = Button(master, text="1", command= self.output).grid(row=0, column=0)
def output(self):
cw1= Toplevel(root)
cw1.title("cw1")
cw1.geometry("400x300+160+160")
self.b2 = Button(cw1, text="Submit",command = self.write_to_xlsx).grid(row=0, column=2)
self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0)
self.e2 = Entry(cw1).grid(row=0, column=1)
def write_to_xlsx(self):
workbook = xlsxwriter.Workbook('tkintertest19.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write_string('C1', self.e2.get())
workbook.close()
root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()
你需要做的就是分割线
self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0)
进入
self.l2 = Label(cw1, text = "New Specimen")
self.l2.grid(row=0, column=0)
这可能看起来不直观,grid
/pack
/place
函数 return None
,所以整个 shebang (Label().grid()
) returns None
。解决办法就是简单地将它拆分,以便在使用 .get()
时得到正确的东西。