From: Matt N. <new...@ca...> - 2003-05-08 12:45:02
|
Hi, First, I'm new to this list, though I've been using Pmw for a few years. So thanks very much for Pmw. Second, I've noticed a few messages here about Pmw and BLT recently and have had similar troubles with Pmw and BLT. Actually, I've had enough problems installing and using BLT on Windows and linux that I'm beginning to worry about relying on Pmw/BLT as a long-term solution. The problem I've seen is related to BLT2.4 versions. On linux, using BLT2.4u.tar.gz seems to work fine with Python2.2. I did see a problem with BLT2.4u and Python2.1 on a RedHat7.3 machine but I'm not sure I could reproduce it. But BLT2.4u.tar.gz is now hard to find: the www.tcltk.com link to it seems dead. The version of BLT from sourceforge (BLT2.4z.tar.gz) builds and runs most its demos just fine (those that don't run seem like missing files, not core functionality), but fails with python/Tkinter: Python 2.2 (#1, Apr 12 2002, 15:29:57) [GCC 2.96 20000731 (Red Hat Linux 7.2 2.96-109)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import Tkinter >>> r = Tkinter.Tk() >>> r.tk.call('package','require','BLT') Traceback (most recent call last): File "<stdin>", line 1, in ? TclError: couldn't load file "/usr/lib/libBLT24.so": /usr/lib/libBLT24.so: undefined symbol: TclpAlloc Upgrading to Python 2.2.2 (ie, rebuilding _tkinter.c) after BLT2.4z.tar.gz has been installed does not solve this problem. I have not tried Python 2.3 or Tcl/Tk 8.4 or reinstalling Tcl/Tk 8.3. Re-installing BLT2.4u.tar.gz solves this conflict. This looks like a BLT/Tcl problem (ie 'TclError: couldn't load...'), but I only get it to appear with the dynamic loading from python. Support (and even downloads!) for BLT seems spotty at best. This worries me. Any thoughts on how to best address this problem? It also seems that getting Pmw/BLT to work on windows is not exactly easy. That is, even following the instructions is painful for newbies or those of us who want to run the Pmw/BLT codes on multiple machines. Would it be possible to include a working version of BLT with the Pmw code, and use a distutils-based installation, either from sources on Unix or with a known working DLL on Windows? I know that's asking a lot, but I believe it would greatly enhance usability and stability of Pmw. Thanks again, --Matt Newville <newville at cars.uchicago.edu> |
From: Greg M. <gr...@in...> - 2003-05-08 14:03:37
|
Matt, You raise some good points. I don't want to point fingers here, but the problem with Pmw/BLT is 100% BLT's fault :) It would be easy to cut the dependency on Pmw completely. Pmw uses BLT in two ways: the BLT Graph interface and the BLT busy cursor. Neither of these are fundamental to the idea of megawidgets. In fact, the graph interface is completely independent and could be removed from Pmw (or moved to another package). The busy cursor is nice, but not essential to the operation of Pmw. So, maybe it would be better if, by default, Pmw did not use BLT at all. That would avoid all problems installing BLT. Those that want to use the graphs would need to fetch the new BLT interface package and go to the trouble of installing BLT. Those that want busy cursors would need to do likewise (and turn on this feature in Pmw.initialise()). Those that don't want either BLT function, need not do anything. Comments? Greg PS: The graph widget in BLT is excellent. I have been using it for years. I just can not understand why BLT is not better supported. I suppose, like all open source software, if no-one comes forward and actively maintains a system, you just have to accept what you get. I still think it is worth the price :) On Thu 08 May 2003 at 07:44:59AM -0500, Matt Newville wrote: > Hi, > > First, I'm new to this list, though I've been using Pmw for a > few years. So thanks very much for Pmw. > > Second, I've noticed a few messages here about Pmw and BLT > recently and have had similar troubles with Pmw and BLT. > Actually, I've had enough problems installing and using BLT on > Windows and linux that I'm beginning to worry about relying on > Pmw/BLT as a long-term solution. > > The problem I've seen is related to BLT2.4 versions. On linux, > using BLT2.4u.tar.gz seems to work fine with Python2.2. I did > see a problem with BLT2.4u and Python2.1 on a RedHat7.3 > machine but I'm not sure I could reproduce it. > > But BLT2.4u.tar.gz is now hard to find: the www.tcltk.com > link to it seems dead. The version of BLT from sourceforge > (BLT2.4z.tar.gz) builds and runs most its demos just fine > (those that don't run seem like missing files, not core > functionality), but fails with python/Tkinter: > > Python 2.2 (#1, Apr 12 2002, 15:29:57) > [GCC 2.96 20000731 (Red Hat Linux 7.2 2.96-109)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> import Tkinter > >>> r = Tkinter.Tk() > >>> r.tk.call('package','require','BLT') > Traceback (most recent call last): > File "<stdin>", line 1, in ? > TclError: couldn't load file "/usr/lib/libBLT24.so": /usr/lib/libBLT24.so: undefined symbol: TclpAlloc > > Upgrading to Python 2.2.2 (ie, rebuilding _tkinter.c) after > BLT2.4z.tar.gz has been installed does not solve this problem. > I have not tried Python 2.3 or Tcl/Tk 8.4 or reinstalling > Tcl/Tk 8.3. > > Re-installing BLT2.4u.tar.gz solves this conflict. > > This looks like a BLT/Tcl problem (ie 'TclError: couldn't > load...'), but I only get it to appear with the dynamic > loading from python. Support (and even downloads!) for BLT > seems spotty at best. This worries me. Any thoughts on how > to best address this problem? > > It also seems that getting Pmw/BLT to work on windows is not > exactly easy. That is, even following the instructions is > painful for newbies or those of us who want to run the Pmw/BLT > codes on multiple machines. > > Would it be possible to include a working version of BLT with > the Pmw code, and use a distutils-based installation, either > from sources on Unix or with a known working DLL on Windows? I > know that's asking a lot, but I believe it would greatly > enhance usability and stability of Pmw. > > Thanks again, > > --Matt Newville <newville at cars.uchicago.edu> > > > > > > > > ------------------------------------------------------- > Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara > The only event dedicated to issues related to Linux enterprise solutions > www.enterpriselinuxforum.com > > _______________________________________________ > Pmw-general mailing list > Pmw...@li... > https://lists.sourceforge.net/lists/listinfo/pmw-general -- Greg McFarlane Really Good Software Pty Ltd Sydney Australia gr...@in... |
From: Robin B. <ro...@je...> - 2003-05-08 17:22:07
|
I've been using/abusing modifying BLT for some time and helped with the original windows port. Even so I cannot help agreeing that wonderful though it might be, it's an absolute beast to port or maintain. It's too complex. There are other ways to do plotting in Tk, but does drag and drop still play a part in BLT? -- Robin Becker |
From: Greg M. <gr...@in...> - 2003-05-09 10:31:38
|
Robin, What other ways are there to do plotting in Tk? I would be interested in alternatives - but it would have to be pretty good to beat Blt graph :) Greg On Thu 08 May 2003 at 04:25:55PM +0100, Robin Becker wrote: > I've been using/abusing modifying BLT for some time and helped with the > original windows port. Even so I cannot help agreeing that wonderful > though it might be, it's an absolute beast to port or maintain. It's too > complex. There are other ways to do plotting in Tk, but does drag and > drop still play a part in BLT? > -- > Robin Becker > > > ------------------------------------------------------- > Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara > The only event dedicated to issues related to Linux enterprise solutions > www.enterpriselinuxforum.com > > _______________________________________________ > Pmw-general mailing list > Pmw...@li... > https://lists.sourceforge.net/lists/listinfo/pmw-general -- Greg McFarlane Really Good Software Pty Ltd Sydney Australia gr...@in... |
From: Robin B. <ro...@je...> - 2003-05-09 11:26:11
|
In message <200...@in...>, Greg McFarlane <gr...@in...> writes >Robin, > >What other ways are there to do plotting in Tk? I would be interested >in alternatives - but it would have to be pretty good to beat Blt >graph :) > >Greg > well at reportlab we have a generic plotting package using python and then we use a bitmap renderer. I was thinking more that there are other Tk alternatives. Pil also knows how to render to bitmaps. The code we use to get the drawings into Pmw is like class PMDisplay(Pmw.ScrolledFrame): def __init__(self, parent,**kw): apply(Pmw.ScrolledFrame.__init__,(self,parent),kw) self.initialiseoptions(PMDisplay) def newDrawing(self, zoom, d, text): w, h = int(zoom*d.width+0.5), int(zoom*d.height+0.5) if zoom!=1.0: from reportlab.graphics.shapes import Drawing, Group #d = Drawing(w,h,Group(d.asGroup(),transform=(zoom,0,0,zoom,0,0))) d = Drawing(w,h,d,transform=(zoom,0,0,zoom,0,0)) self._image = Tkinter.PhotoImage( data=base64.encodestring(renderPM.drawToString(d,fmt='gif')), width=w, height=h, format='gif') if hasattr(self,'_label'): self._label.grid_forget() frame = self.interior() self._label = Tkinter.Label(frame, width=w, height=h, image=self._image) self._label.grid(row=0, col=0, sticky = 'news') self['label_text'] = text frame.grid_rowconfigure(0, weight = 1) frame.grid_columnconfigure(0, weight = 1) self.reposition() and I think that would work for any library that could create gifs. -- Robin Becker |