confused about classes and tkinter object design

marc wyburn marc.wyburn at googlemail.com
Thu Nov 27 05:19:06 EST 2008


On Nov 26, 12:09 pm, Bruno Desthuilliers <bruno.
42.desthuilli... at websiteburo.invalid> wrote:
> marc wyburn a écrit :
>
> > Hi,
>
> > I've created my firstTkinterGUI class which consists of some buttons
> > that trigger functions.  I have also created a
> > tkFileDialog.askdirectory control to local a root folder for log
> > files.
>
> > I have several file paths that depend on the value of
> > tkFileDialog.askdirectory should I create an object that inherits this
> > value or can I point functions at the GUI class?
>
> > I am creating thetkinterGUI instance using;
>
> > if __name__ == "__main__":
> >     GUI = AuditorGUI()
>
> Note that at this point, the AuditorGUI class is not yet defined, so you
> should get a NameError.
>
>
>
> >     GUI.mainloop()
>
> > class AuditorGUI(Frame):
>
> I assume you have all necessary imports in your real code...
>
>
>
>
>
> >     def __init__(self):
> >         Frame.__init__(self)
> >         self.pack(expand = YES, fill = BOTH)
>
> > ##      Create GUI objects
>
> >         self.currentdir = StringVar()
> >         self.currentdir.set(os.getcwd())
>
> >         self.logdir = Button(self, text="Choose Data
> > directory",command=self.choose_dir)
> >         self.logdir.grid(row=1,column=0,sticky='nsew',pady=20,padx=20)
>
> >         self.labeldirpath = Label(self, textvariable=self.currentdir)
>
> >     def choose_dir(self):
> >         dirname = tkFileDialog.askdirectory
> > (parent=self,initialdir=self.currentdir.get(),title='Please select a
> > directory')
> >         if len(dirname ) > 0:
> >             self.currentdir.set(dirname)
>
> > I think I have created an instance of the AuditorGUI class called GUI
> > so should be able to access the path using GUI.currentdir but this
> > doesn't work.
>
> "does not work" is (almost) the less possible usefull description of a
> problem. What happens exactly ? Do you have a traceback ? If so, please
> post the full traceback and error message. Else, please explain what
> result you get. And if possible, post minimal *working* code reproducing
> the problem.
>
> > I'm still struggling with classes so not sure whether my problem is
> >tkinterrelated or not.
>
> Minus the couple problems above (ie: trying to instanciate a
> non-yet-existing class, and lack of necessary imports), it seems correct
> - at least wrt/ class definition and instanciation.- Hide quoted text -
>
> - Show quoted text -

thanks for your help.  I'm not creating the instances properly.
Everything works as expected if I merge everything into the class.
Time to get the manual out again.  Thanks for pointing me in the right
direction. MW



More information about the Python-list mailing list