On Apr 12, 5:03 pm, James Stroud <[EMAIL PROTECTED]> wrote: > James Stroud wrote: > > Chad wrote: > > >> I have a simple little program that brings up asks the user to enter a > >> note, then is supposed to place that note into a text file when the > >> user hits the submit button. However, when the user hits the submit > >> button, absolutely nothing happens. IDLE doesn't give an error > >> message and the note is not entered into the text file. For > >> troubleshooting puposes, I wanted to see if IDLE would at least print > >> the user's input; it doesn't do that either. Can someone please help > >> me? > > >> Here is the code: > > >> from Tkinter import * > > >> class Application(Frame): > >> """ GUI application that creates a story based on user input. """ > >> def __init__(self, master): > >> """ Initialize Frame. """ > >> Frame.__init__(self, master) > >> self.grid() > >> self.create_widgets() > > >> def create_widgets(self): > >> """ Create widgets to get note information. """ > >> # create instruction label and text entry for notes > >> Label(self, > >> text = "Notes" > >> ).grid(row = 0, column = 0, columnspan = 2 ) > > >> self.notes_ent = Text(self, width = 75, height = 10, wrap = > >> WORD) > >> self.notes_ent.grid(row = 2, column = 0 ,columnspan = 7, > >> rowspan = 3, sticky = W) > >> create submit button > >> text1 = StringVar(self) > >> text1 = self.notes_ent.get(1.0, END) > >> self.notes_ent.config(state=NORMAL) > >> Button(self, > >> text = "Add Note", > >> command = self.add_note(text1) > >> ).grid(row = 1, column = 0, sticky = W) > > >> def add_note(self, text1): > >> print text1 > >> text_file = open("write_it.txt", "a+") > >> text_file.write(text1) > > >> root = Tk() > >> root.title("Mad Lib") > >> app = Application(root) > >> root.mainloop() > > > On second look, it seems you have deeper problems, some of which are: > > > > text1 = StringVar(self) > > > text1 = self.notes_ent.get(1.0, END) > > > You obviously added the second because the first will never work. Get > > rid of both lines. Even if you intended the second, it immediately > > nullifies the first. Instead of my previous suggestions, do this: > > > 1. delete both "text1 =" lines > > 2. change "command = self.add_note(text1)" to > > "command = self.add_note" > > 3. change "def add_note(self, text1):" to > > "def add_note(self):" > > 4. delete "print text1" > > 5. change "text_file.write(text1)" to > > "text_file.notes_ent.get(1.0, END) > > > James > > Or rather > 5. change "text_file.write(text1)" to > "text_file.write(self.notes_ent.get(1.0, END))"
Thank you, that worked very well. -- http://mail.python.org/mailman/listinfo/python-list