| | |
Tkinter Addressbook
Please support our Python advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
•
•
Join Date: Apr 2007
Posts: 1
Reputation:
Solved Threads: 0
I am new to python and Tkinter. I was trying to build an addressbook for my class. I have the Tkinter GUI looking good - nothing fancy. Now I can't get my python part working. I want to keep the GUI in its own class and file. My two files are project.py and AddressBookGUI.py
AddressBookGUI.py
project.py
Any ideas would be greatly appreciated. I have been working on this for days and am ready to cry .
thanks!
AddressBookGUI.py
Python Syntax (Toggle Plain Text)
# This file is named AddressBookGui.py from Tkinter import * import tkMessageBox from ScrolledText import * import project class GUI: def __init__(self): root = Tk() root.title("Simple Address Book") root.geometry('500x400') b =Frame(root, bd = 3, bg='darkblue') b.pack(side='top', fill = 'x') findit = Entry(b, width=30) find = Button(b, text = "SEARCH LASTNAME",command=project.findname) find.pack(side = "right", pady = 5, padx = 10) findit.pack(side='right') record = Button(b, text ="NEW RECORD",command=project.openwindow) record.pack(side = "left", pady = 10, padx = 10) a = Frame(root, bd = 3,bg='darkblue') a.pack(side='left', fill = 'y') openfile = Button(a, text = "OPEN",command=project.readfile) openfile.pack(side = "top", pady =10, padx =10) printrec= Button(a, text ="PRINT LIST",command=project.printfile(thelist1)) printrec.pack(pady = 40, padx = 15) helpfile = Button(a, text = "HELP",command=project.helpfile) helpfile.pack(side = "bottom", pady =20, padx =10) close = Button(a, text = "EXIT",command=project.closefile) close.pack(side = 'bottom',pady = 10, padx = 10) c=Frame(root,bd=3,bg='darkblue') c.pack(side='bottom',fill='x') deleteit = Entry(c, width=30) delete = Button(c, text = "DELETE NAME",command=project.deletefile) delete.pack(side="right",pady = 25, padx = 10) deleteit.pack(side='right') c = Frame(root, bd = 3, relief = 'groove') c.pack(side='top', fill = 'x') i =Frame(root) thelist1=Listbox(i,bg = 'white') thelist1.pack(fill = 'both') i.pack(side = 'top',fill = 'both',expand = 1) thetext = ScrolledText(i) thetext.pack(side = 'top',fill = 'both',expand =1) root.mainloop() def dialog(frame): win = Toplevel() win.geometry('400x230+100+100') d = Frame(win) txtfirst = Entry(d, width =40) fname = Label(d, width = 15,text = 'First Name') fname.pack(side = 'left',pady = 8) txtfirst.pack(side = 'left') d.pack(side = 'top',fill ='x') e = Frame(win) txtlast = Entry(e, width =40) lname = Label(e, width = 15,text = 'Last Name') lname.pack(side = 'left',pady = 8) txtlast.pack(side = 'left') e.pack(side = 'top',fill ='x') f = Frame(win) txtadd = Entry(f, width =40) address = Label(f, width = 15,text = 'Street Address') address.pack(side = 'left',pady = 8) txtadd.pack(side = 'left') f.pack(side = 'top',fill ='x') g = Frame(win) txtcity = Entry(g, width =16) city = Label(g, width = 15,text = 'City') city.pack(side = 'left',pady = 8) txtcity.pack(side = 'left') txtst = Entry(g, width =4) street = Label(g, width = 8,text = 'State') street.pack(side = 'left',pady = 8) txtst.pack(side = 'left') txtzip = Entry(g, width =8) zipcde = Label(g, width = 8,text = 'Zipcde') zipcde.pack(side = 'left',pady = 8) txtzip.pack(side = 'left') g.pack(side = 'top',fill ='x') h = Frame(win) txtph = Entry(h, width =16) phone = Label(h, width = 15,text = 'Phone') phone.pack(side = 'left',pady = 5) txtph.pack(side = 'left') txtpx = Entry(h, width =16) email = Label(h, width = 10,text = 'E-mail') email.pack(side = 'left',pady = 8) txtpx.pack(side = 'left') h.pack(side = 'top',fill ='x') j=Frame(root,bd=3,bg='darkblue') j.pack(side='left',fill='y') save = Button(j, text = "SAVE",command=project.savefile) save.pack(pady=20, padx =10) i = Frame(win) i.pack(side = 'top',fill ='x') close = Button(i, text = "EXIT",command=project.closefile) close.pack(side = 'right',pady = 10, padx = 75) GUI()
project.py
Python Syntax (Toggle Plain Text)
# This file is named project.py filename="addressfile.txt" filehelpname="readme.txt" def openwindow(self): AddressBookGui.dialog() def closefile(self): root.destroy() def helpfile(self): textfile = open(filehelpname,'r') text=textfile.read() textfile.close() print text def findname(self): thelist1.delete(0,END) thename = findit.get() x = open(filename,"r") for y in x: q = y.split(",") if thename == q[1]: thelist1.insert(END,y) x.close() def printfile(self): thelist1.delete(0,END) x = open(filename,'r') for y in x: thelist1.insert(END,y.strip()) x.close() def deletefile(self): thelist1.delete(0,END) thename2 = deleteit.get() g = open(filename,"r") for t in g: f = t.split(",") if thename2 == f[1]: del(thelist1[f]) def showfile(self): person = thelist.get(ANCHOR) x = person.strip().split(',') def readfile(self): thelist1.delete(0,END) x = open(filename,"r") for y in x: thelist1.insert(END,y.strip()) x.close()
Any ideas would be greatly appreciated. I have been working on this for days and am ready to cry .

thanks!
My suggestion is to break this monster down to smaller parts and test each part before you assemble it all. Get familiar with GUI programming, classes, callbacks, functions and so on.
At first glance there are a lot of mistakes. For instance this line:
printrec= Button(a, text ="PRINT LIST",command=project.printfile(thelist1))
has 2 errors, thelist1 has not been established yet, and command does not accept a function call but a function object.
At first glance there are a lot of mistakes. For instance this line:
printrec= Button(a, text ="PRINT LIST",command=project.printfile(thelist1))
has 2 errors, thelist1 has not been established yet, and command does not accept a function call but a function object.
May 'the Google' be with you!
![]() |
Similar Threads
- Tkinter exception (Python)
- TKinter tough time (Python)
- Tkinter: protecting text in the Entry widget (Python)
- Wondering about new windows in Tkinter (Python)
- Need Help with Tkinter (Python)
Other Threads in the Python Forum
- Previous Thread: python Exercise
- Next Thread: Success! But roadblock...
Views: 1345 | Replies: 1
| Thread Tools | Search this Thread |
Tag cloud for Python
approximation array beginner book builtin change cipher clear client code color converter countpasswordentry cturtle curved def dictionary drive dynamic examples excel file float format ftp function gui homework import inches input java library line lines linux list lists loop microcontroller mouse mysqldb mysqlquery newb number numbers output parsing path plugin port prime program programming projects py2exe pygame pymailer pyqt python random recursion recursive redirect remote script scrolledtext search singleton socket sqlite ssh string strings strip subprocess sum syntax table terminal text textarea thread threading time tkinter tlapse tuple tutorial twoup ubuntu unicode urllib urllib2 variable vigenere wikipedia windows wxpython xlwt






