Richard Terry wrote:
I had a similiar error.Ian,
for what it is worth, I've always found using this sort of code works better than the icon code you use. Don't know why. Karsten or someone alluded in a previous post to the fact that wxPython seems to be very touchy around all this bitmap/icon stuff. Certainly I've found in practice when creating icons/bitmaps etc that even an apparently innocent bitmap or icon crashes the system, one can re-create it in apparently the same manner and it dosn't.
I've temporarily hardcoded my file with a little house picture, but the code under it should be generic enough to use instead of the icon code.
img = wx.Image ('/home/richard/gnumed/gnumed/client/bitmaps/home_path3232.png', wx.BITMAP_TYPE_ANY)
==============================================
bmp = wx.BitmapFromImage (img)
imagelist.Add (bmp)
self.nb.AssignImageList (imagelist)
==============================================
Here's my error messages:
richard
[PANIC] (gnumed.py:[EMAIL PROTECTED]): Exception: Unhandled exception encountered.
[PANIC] (gnumed.py:[EMAIL PROTECTED]): exception type : wx._core.PyAssertionError
[PANIC] (gnumed.py:[EMAIL PROTECTED]): exception value: C++ assertion "(bitmap.GetWidth() == m_width && bitmap.GetHeight() == m_height) || (m_width == 0 && m_height == 0)" failed in ../src/generic/imaglist.cpp(81): invalid bitmap size in wxImageList: this might work on this platform but definitely won't under Windows.
[PANIC] (gnumed.py:[EMAIL PROTECTED]): Traceback (most recent call last):<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "gnumed.py", line 309, in ?<#10-0x0A-lf> gmGuiMain.main()<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/lib/python2.3/site-packages/Gnumed/wxpython/gmGuiMain.py", line 640, in main<#10-0x0A-lf> app = gmApp(0)<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/src/wxPython-src-2.5.4.1/wxPython/wx/_core.py", line 5577, in __init__<#10-0x0A-lf> self._BootstrapApp()<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/src/wxPython-src-2.5.4.1/wxPython/wx/_core.py", line 5229, in _BootstrapApp<#10-0x0A-lf> return _core_.PyApp__BootstrapApp(*args, **kwargs)<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/lib/python2.3/site-packages/Gnumed/wxpython/gmGuiMain.py", line 496, in OnInit<#10-0x0A-lf> frame = gmTopLevelFrame(None, -1, _('GnuMed client'), (640,440), gmCLI.arg.get ('--layout', None))<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/lib/python2.3/site-packages/Gnumed/wxpython/gmGuiMain.py", line 131, in __init__<#10-0x0A-lf> self.LayoutMgr = gmRichardSpace.cLayoutMgr(self, -1)<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/lib/python2.3/site-packages/Gnumed/wxpython/gmRichardSpace.py", line 64, in __init__<#10-0x0A-lf> self.__load_plugins()<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/lib/python2.3/site-packages/Gnumed/wxpython/gmRichardSpace.py", line 126, in __load_plugins<#10-0x0A-lf> imagelist.AddIcon (icon)<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): File "/usr/src/wxPython-src-2.5.4.1/wxPython/wx/_gdi.py", line 4432, in AddIcon<#10-0x0A-lf> return _gdi_.ImageList_AddIcon(*args, **kwargs)<#10-0x0A-lf>
[PANIC] (gnumed.py:[EMAIL PROTECTED]): PyAssertionError: C++ assertion "(bitmap.GetWidth() == m_width && bitmap.GetHeight() == m_height) || (m_width == 0 && m_height == 0)" failed in ../src/generic/imaglist.cpp(81): invalid bitmap size in wxImageList: this might work on this platform but definitely won't under Windows.<#10-0x0A-lf>
_______________________________________________ Gnumed-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnumed-devel
this seemed to work. I changed the default bitmap and explicitly set the bitmap's width and height
after loading.
imagelist = wx.ImageList (16, 16)
default_bitmap = None
for i in self.plugins:
png_fname = os.path.join(self.__gb['gnumed_dir'], 'bitmaps', '%s.png' % getattr (i, "icon", i.__class__.__name__))
icon = wx.EmptyIcon()
if not os.access (png_fname, os.R_OK):
png_fname = os.path.join(self.__gb['gnumed_dir'], 'bitmaps', 'serpent.png')
icon.LoadFile(png_fname, wx.BITMAP_TYPE_PNG)
icon.SetWidth(16)
icon.SetHeight(16)
imagelist.AddIcon (icon)
self.nb.AssignImageList (imagelist)
_______________________________________________ Gnumed-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnumed-devel
