On Tue, 2006-06-06 at 19:42 +0000, John Salerno wrote: > Fredrik Lundh wrote: > > > however, if you need to access a widget later on, it might be a good > > idea to save a reference to it somewhere... > > To follow up on that point, I have the following code now. I have two > questions about it: > > 1. Can I somehow make the passing of 'master' to the draw_entry method > automatic, so I don't have to type it each time I call the function? > > 2. Related to your comment, the obvious problem here is that it doesn't > save references to the text box names, so I can't access them later. Is > there still a way to automate the process like I've done, but have each > entry field have a separate name? > > Thanks. > > --------------- > > import Tkinter as tk > > > class App: > > def __init__(self, master): > self.draw_entry(master, 'First Name:') > self.draw_entry(master, 'Last Name:') > > def draw_entry(self, master, label_text): > frame = tk.Frame(master, bd=4) > frame.pack() > self.label = tk.Label(frame, text=label_text, width=10) > self.label.pack(side=tk.LEFT) > self.entry = tk.Entry(frame) > self.entry.pack(side=tk.LEFT) > > > root = tk.Tk() > app = App(root) > root.resizable(width=False, height=False) > root.mainloop() > --
Try this: import Tkinter as tk class App: def __init__(self, master): self.parent = master self.entry1 = self.draw_entry('First Name:') self.entry2 = self.draw_entry('Last Name:') def draw_entry(self, label_text): frame = tk.Frame(self,parent, bd=4) frame.pack() label = tk.Label(frame, text=label_text, width=10) label.pack(side=tk.LEFT) entry = tk.Entry(frame) entry.pack(side=tk.LEFT) return entry root = tk.Tk() app = App(root) root.resizable(width=False, height=False) root.mainloop() -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- http://mail.python.org/mailman/listinfo/python-list