[Tutor] Display in a text field using tkinter
doyin adegoke
doyennehoney at yahoo.com
Sat Apr 3 10:05:41 CEST 2010
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 <eire1130 at gmail.com>
To: adedoyin adegoke <doyennehoney at yahoo.com>
Cc: tutor at 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 <doyennehoney at 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 at 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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100403/6f76fb3d/attachment-0001.html>
More information about the Tutor
mailing list