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))" -- http://mail.python.org/mailman/listinfo/python-list