Press button to load data

gilbert3b2g at gilbert3b2g at
Thu Nov 16 05:20:25 CET 2006

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 ='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):
    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)


More information about the Python-list mailing list