On 2/6/06, Rich Shepard <[EMAIL PROTECTED]> wrote: > I'm developing a wxPython-based application. The UI is a notebook, with the > contents of each page in a separate module. In one module (modelPage.py), I > have defined the class modModel, which is an instance of a wx.Panel class. > Within modModel is a text control widget named tcName. > > The main module, eikos.py, imports modModel from modPage.py. The main > module has two classes: MyNotebook (subclassed from wx.Notebook) and MyFrame, > which contains the notebook and menus. > > The File->New menu calls the method OnFileNew. This displays a directory > dialog so the user can select the directory in which the new file is to be > placed. Then it displays a text entry dialog for the name of the new file. > > I am able to enter the new file name and it is correctly assigned to the > variable, projname. What I have not been able to do is have that same > filename displayed in the text control widget, tcName. Here is OnFileNew from > the main module: > > def OnFileNew(self, event): > """ Create a new file and open it.""" > self.dirname = '' > wd = wx.DirDialog(self, "Chose the default directory", ".", > style=wx.DD_NEW_DIR_BUTTON) > if wd.ShowModal() == wx.ID_OK: > dirname = wd.GetPath() > ted = wx.TextEntryDialog(self, "Enter the project name", "New Project > Name", "", > style=wx.RAISED_BORDER|wx.OK|wx.CANCEL) > if ted.ShowModal() == wx.ID_OK: > projname = ted.GetValue() > tcName = self.modModel.tcName > tcName.WriteText(self, projname) > ted.Destroy() > wd.Destroy() > > While projname has the correct string, tcName remains undefined: > > File "eikos.py", line 272, in OnFileNew > tcName = self.modModel.tcName > AttributeError: 'MyFrame' object has no attribute 'modModel'
I would *guess* that you'd want instead something like tcName = self.myNotebook.modModel.tcName As I understand, modModel is a page in a wx.Notebook; you probably created it within your Notebook instance, and not your Frame instance. Meanwhile, your OnFileNew method appears to belong to your Frame instance. André > > How do I make tcName visible in eikos.py when it's defined in modelPage.py? > > Rich > > -- > Richard B. Shepard, Ph.D. | Author of "Quantifying > Environmental > Applied Ecosystem Services, Inc. (TM) | Impact Assessments Using Fuzzy > Logic" > <http://www.appl-ecosys.com> Voice: 503-667-4517 Fax: 503-667-8863 > > > > > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor