[chimera-dev] Using Pmw widgets

Greg Couch gregc at cgl.ucsf.edu
Mon Aug 29 11:01:22 PDT 2011


We use Pmw.EntryField in chimera a lot, and are not seeing this error.  
And it is extremely strange that reinstalling Windows 7 caused this 
problem, but not unheard of -- in the past, particular versions of Adobe 
Acrobat would screw up Python.  Nowadays, anti-virus programs are the 
most likely culprits.

So could you clarify what you mean about "closing the viewer"?  Is the 
viewer the chimera graphics window and you are quitting and restarting 
chimera?  Or is the viewer part of your extension?  If it is the former, 
then I am totally baffled.  If it is the latter, then the likely 
explanation is that when you close your extension, something is not 
cleaned up properly, and so when you reimport it, you get your error.  A 
workaround solution would be to never completely close it in the first 
place, so it wouldn't have to recreated when it is imported the second 
time.  Most chimera dialogs are like this -- they are singletons and 
just withdraw when closed and are raised when reentered.  See the code 
in CHIMERA/share/chimera/baseDialog.py for details.

     HTH,

     Greg

On 08/28/2011 03:40 PM, Mateusz Dobrychłop wrote:
> Dear Chimera Dev Team,
>
> I am writing a Chimera extension and I use the Pmw toolkit in my GUI. 
> I had no problems testing it and it worked great until I decided to 
> reinstall my OS (Windows 7). After that, I installed Chimera 1.5.3, 
> imported my extension and didn't face any problems at first. But then, 
> after closing the viewer and running it again, an error occured right 
> after importing the extension's gui:
>
> Traceback (most recent call last):
>   File "<pyshell#5>", line 1, in <module>
>     b=Pmw.EntryField(a,labelpos="w",label_text="asd")
>   File "C:\Program Files (x86)\Chimera 
> 1.5\bin\lib\site-packages\Pmw\Pmw_1_3\lib\PmwEntryField.py", line 73, 
> in __init__
>     sequences = root.bind_class(tag)
>   File "C:\Program Files (x86)\Chimera 1.5\bin\lib\lib-tk\Tkinter.py", 
> line 1012, in bind_class
>     return self._bind(('bind', className), sequence, func, add, 0)
>   File "C:\Program Files (x86)\Chimera 1.5\bin\lib\lib-tk\Tkinter.py", 
> line 947, in _bind
>     return self.tk.splitlist(self.tk.call(what))
> TclError: bad window path name ".94327912.94328912"
>
> I didn't change anything since the last succesful testing of my 
> extension - something happened after closing Chimera for the first 
> time, and I have no idea what it is.
>
> After that, I tried reinstalling Chimera, installing older versions - 
> it's always the same story; everything works great on the first run, 
> but after I close the viewer for the first time, I am not ever able to 
> use Pmw anymore.
>
> The code that causes this error is simple:
>
> a=Tkinter.Tk()
> b=Pmw.EntryField(a,labelpos="w",labeltext="c")
>
> I tried to type the same thing in IDLE and I got the exact same error.
>
> Thank you for any help,
>
> best,
>
> Mateusz




More information about the Chimera-dev mailing list