I'm making an app in tkinter and for some reason I can't call the function 'get()' from an object of the Text() class: I get the error
AttributeError: 'NoneType' object has no attribute 'get'
What am I doing wrong? Here is my code:
1 import tkinter
2
3
4 class Main():
5
6 def __init__(self):
7 #Defining Variables:
8
9 background_color = '#%02x%02x%02x' % (223,219,195)
10 menubar_color = '#%02x%02x%02x' % (191, 167, 126)
11 menubar_active = '#AB936A'
12
13 #Creating Window:
14 root = tkinter.Tk()
15 root.geometry('1000x600')
16 root.configure(background=background_color)
17
18 #Menu:
19 menubar = tkinter.Menu(root,bg=menubar_color,activebackground=menuba r_active,borderwidth=0,font='quicksand.otf')
20 menubar.add_command(label='Open',command=self.open_file)
21 menubar.add_cascade(label='Save')
22 menubar.add_cascade(label='Save As')
23 menubar.add_cascade(label='New File')
24
25 root.config(menu=menubar)
26
27 #TextEntry Box:
28 self.textinput = tkinter.Text().grid(row=0,column=0)
29 root.mainloop()
30
31 def open_file(self):
32 text = self.textinput.get()
33 print(text)
34
35 if __name__ == '__main__':
36 Main()
Thanks for any help!
Nevermind! I happened to figure it out. Instead of one line saying
textinput = tkinter.Text().grid(row=0,column=0)
I turned it into two lines saying
self.textinput = tkinter.Text()
self.textinput.grid(row=0,column=0)
and instead of
self.textinput.get()
I used
self.textinput.get('1.0','end-1c')