confused about classes and tkinter object design
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Wed Nov 26 07:09:06 EST 2008
marc wyburn a écrit :
> Hi,
>
> I've created my first Tkinter GUI 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 the tkinter GUI 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
> tkinter related 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.
More information about the Python-list
mailing list