Thanks
I made the changes and the error was still there

"print self.favorite.get()" prints the name of the selected database on the 
console




________________________________
From: James Reynolds <eire1...@gmail.com>
To: adedoyin adegoke <doyenneho...@yahoo.com>
Cc: tutor@python.org
Sent: Fri, April 2, 2010 2:26:36 PM
Subject: Re: [Tutor] Display in a text field using tkinter




On Fri, Apr 2, 2010 at 2:25 AM, adedoyin adegoke <doyenneho...@yahoo.com> wrote:

from Tkinter import *
>import MySQLdb
>
>
>class Snoop(Frame):
>    def __init__(self, master):
>        Frame.__init__(self, master)
>        self.grid()
>>        self.create_widgets()
>
>
>    def create_widgets(self):
>        Label(self, text = "Database Name:").grid(row = 0, column = 0, sticky 
> = W)
>        self.txt_box = Entry(self, text = "hool").grid(row = 0, column = 1, 
> sticky = W)
>        Button(self, text = "Submit", command = self.connect_db).grid(row = 1, 
> column = 1, sticky = W)
>        Label(self, text = "Tables:").grid(row = 2, column = 0, sticky = W)
>>
>       
>        Label(self, text = "Information:").grid(row = 2, column = 1, sticky = 
> W)
>       # self.txt = Text(self, width = 40, height = 5, wrap = WORD).grid(row = 
> 3, column = 1, sticky = W)
>       
>    def connect_db(self):
>        db= MySQLdb.connect(host="localhost", user="root" , passwd="")
>        cursor = db.cursor()
>        cursor.execute("show databases")
>
>
>        self.favorite = StringVar()
>
>
>        result = cursor.fetchall()
>        i = 4
>        for record in result:
>            Radiobutton(self,
>                     text = record,
>                     variable = self.favorite,
>                     value = record,
>                     command = self.update_text
>                     ).grid(row = i, column = 0, sticky = W)
>            i+=1
>        
>        #print database
>        #self.txt.delete(0.0, END)
>        #self.get_db(database)
>    def update_text(self):
>        print self.favorite.get()
>        trt = self.favorite.get()
>        self.txt_box.insert(END,trt)
>
>
>   
>
>
>#db.close
>root = Tk()
>root.title("Snoop")
>>
>start = Snoop(root)
>
>
>root.mainloop()
>
>
>
>
>
>
>The above code will snoop and fetch all d available databases using tkinter. 
>When I select one of these databases, the name should be inserted in a text 
>field instead it throws the following error ;
>
>
>Exception in Tkinter callback
>Traceback (most recent call last):
>  File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
>    return self.func(*args)
>  File "/home/NetBeansProjects/python/src/Xsnoop.py", line 45, in update_text
>    self.txt_box.insert(END,trt)
>AttributeError: 'NoneType' object has no attribute 'insert'
>   
>
>
>How can i correct this?
>
>
>_______________________________________________
>>Tutor maillist  -  Tutor@python.org
>>To unsubscribe or change subscription options:
>http://mail.python.org/mailman/listinfo/tutor
>
>
Is this line printing anything:

>"print self.favorite.get()"?


I would try something like this:

Move this to the "__init__":

>self.favorite = StringVar()

Change this:

>self.txt_box = Entry(self, text = "hool").grid(row = 0, column = 1, sticky = W)

to this:


>self.txt_box = Entry(self, text = self.name).grid(row = 0, column = 1, sticky 
>= W)

in the "__init__" add two lines:

 
self.name = StringVar()
self.name.set("hool")

In update_text change this:

>self.txt_box.insert(END,trt)

to this:

>self.name.set(trt)


      
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to