Trouble running a Grayson Example
David Lees
deblNoNoSpammy at theworld.com
Tue Mar 6 12:14:23 EST 2001
Robert,
Thanks, you figured it out. I made your suggested changes and the
example works fine.
David Lees
Robert Roy wrote:
>
> On Mon, 05 Mar 2001 19:13:50 GMT, David Lees
> <deblNonOspammy at theworld.com> wrote:
>
> >I am trying to run example 8.9 (Example_8_9.py) from Graysons book,
> >under Python 2.0 and get the following errors. Can someone tell me what
> >is going on? Perhaps this has to do with changes between 1.5.2 and 2.0
> >Python?
> >
> >Thanks in advance.
> >
> >david lees
> >
> >
> >Traceback (most recent call last): File
> >"d:\Python20\Pythonwin\pywin\framework\scriptutils.py", line 301, in
> >RunScript
> > exec codeObject in __main__.__dict__
> > File "E:\Grayson1\Chapter08\Example_8_9.py", line 79, in ?
> > ddnotebook = DDNotebook()
> > File "E:\Grayson1\Chapter08\AppShell.py", line 55, in __init__
> > self.__createInterface()
> > File "E:\Grayson1\Chapter08\AppShell.py", line 282, in
> >__createInterface
> > self.createInterface()
> > File "E:\Grayson1\Chapter08\Example_8_9.py", line 75, in
> >createInterface
> > self.createNotebook()
> > File "E:\Grayson1\Chapter08\Example_8_9.py", line 26, in
> >createNotebook Pmw.NoteBookR,(self.interior(),),)
> > File "E:\Downloads\pmw\Pmw\Pmw_0_8_4\lib\PmwLoader.py", line 174, in
> >__getattr__
> >AttributeError: NoteBookR
>
> The examples in the Grayson book were written using an older version
> of Pmw probably 0_8_1. NoteBookR ceased to exist in 0_8_3 and you are
> using 0_8_4. There were some fundamentat changes to the way Notebook
> works.
>
> The following code will work.
>
> def createNotebook(self):
> # changed Pmw.NoteBookR to Pmw.NoteBook
> self.notebook = self.createcomponent('notebook', (), None,
> Pmw.NoteBook,
> (self.interior(),),)
> self.notebook.pack(side=TOP, expand=YES, fill=BOTH, padx=5,
> pady=5)
> self.formwidth = self.root.winfo_width()
>
> def addPage(self, dictionary):
> table, top, anchor, incr, fields, \
> title, keylist = dataDict[dictionary]
> # there is no label attribute anymore but a tab_text attribute
> #(optional)
> # self.notebook.add(table,label=title)
> self.notebook.add(table, tab_text=title)
> self.current = 0
> ypos = top
> idx = 0
> for label, field, width, proc, valid, nonblank in fields:
> pstr = 'Label(self.notebook.page(table),'\
> 'text="%s").place(relx=%f,rely=%f, anchor=E)\n' % \
> (label, (anchor-0.02), ypos)
> if idx == keylist[0]:
> # self.notebook.page(table).interior() to self.notebook.page(table)
> # did this in 3 places
> pstr = '%sself.%s=Entry(self.notebook.page(table),'\
> 'text="",insertbackground="yellow",
> width=%d+1,'\
> 'highlightthickness=1)\n' % (pstr,field,width)
> else:
> pstr = '%sself.%s=Entry(self.notebook.page(table),'\
> 'text="", insertbackground="yellow",'\
> 'width=%d+1)\n' % (pstr,field,width)
> pstr = '%sself.%s.place(relx=%f, rely=%f,'\
> 'anchor=W)\n' % (pstr,field,(anchor+0.02),ypos)
> exec '%sself.%sV=StringVar()\n'\
> 'self.%s["textvariable"] = self.%sV' % \
> (pstr,field,field,field)
> ypos = ypos + incr
> idx = idx + 1
More information about the Python-list
mailing list