Press button to load data

jim-on-linux inq1ltd at verizon.net
Thu Nov 16 07:28:57 CET 2006


Just from a glance my thoughts are to 
start with one file and build on it. Make 
a class of it so you can loop it to use 
it over for each record.


You wrote that the info was in a file on 
the hd. If it is in a file on the hd, use the 
open() 
function, read from the file, only one record
and write the data to a list. 
   
You can incorporate the 
button option, 

"command = CallSomeFunction",

to call a function that builds a window,  
and loads the data into labels or
entry boxes.
If you are going to modify 
the data, entry boxes allow you to  
modify it and save it back to a 
file.

Also, when using the open() function,
close it after you get the data you need. 
otherwise you may experience 
unexpected problems.

client = open('client', 'r')
client.read() (readline()) (readlines())
client.close()

jim-on-linux

http//:www.inqvista.com





On Wednesday 15 November 2006 23:20, 
gilbert3b2g at msn.com wrote:
> I'm new to Python, and programming in general.
> What I'm trying to do here is to load a list of
> accounts from a file on my harddrive into a
> string of Buttons in Tkinter, and when I press
> one of the Buttons, which has one of my account
> name, it will load that account into a new
> window. But I don't understand how to code the
> proccess that would tell the program what
> account is selected. Any help with this would
> be very appreciated. Thanks in advance.
>
> from Tkinter import *
> import shelve
> from tkMessageBox import showerror
>
> shelvename = shelve.open('class-shelve2')
> cat = (' Name ', ' Account # ', ' Amount Due ',
> ' Date Due ')
>
> def NameFields(top):
>     name1 = Label(None, text=cat[0],
> relief=RIDGE, width=20, fg='blue', bg='white',
> font=('bold',15))
>     name2 = Label(None, text=cat[1],
> relief=RIDGE, width=15, fg='blue', bg='white',
> font=('bold',15))
>     name3 = Label(None, text=cat[2],
> relief=RIDGE, width=15, fg='blue', bg='white',
> font=('bold',15))
>     name4 = Label(None, text=cat[3],
> relief=RIDGE, width=15, fg='blue', bg='white',
> font=('bold',15))
>     name1.grid(row=0, column=0, sticky=NSEW)
>     name2.grid(row=0, column=1, sticky=NSEW)
>     name3.grid(row=0, column=2, sticky=NSEW)
>     name4.grid(row=0, column=3, sticky=NSEW)
>     top.columnconfigure(0, weight=1)
>     top.columnconfigure(1, weight=1)
>     top.columnconfigure(2, weight=1)
>     top.columnconfigure(3, weight=1)
>
>
> def DisplayBills(top):
>     c=0
>     for bill in shelvename:
>         bill1 = Button(None, text=
> shelvename[bill].name, font=('bold',10),
> command=fetchRecord) bill2 = Label(None, text=
> shelvename[bill].account, relief=RIDGE,
> font=('bold',10))
>         bill3 = Label(None, text=
> shelvename[bill].paymentDue, relief=RIDGE,
> font=('bold',10), fg='red') bill4 = Label(None,
> text= shelvename[bill].dateDue, relief=RIDGE,
> font=('bold',10))
>         bill1.grid(row=c, column=0,
> sticky=NSEW) bill2.grid(row=c,column=1,
> sticky=NSEW) bill3.grid(row=c,column=2,
> sticky=NSEW) bill4.grid(row=c,column=3,
> sticky=NSEW) c = c + 1
>
> def fetchRecord():
>
> top = Tk()
>
> DisplayBills(top), NameFields(top)
>
> mainloop()



More information about the Python-list mailing list