On Wednesday 09 July 2003 11:20 pm, David Boddie wrote: > Following up to this again as things change... > > On Tue, 8 Jul 2003 20:21:21, Simon Edwards <[EMAIL PROTECTED]> wrote: > > I had a look at the IOSlave code and saw that it works quite differently > > than kcms. Kcms are basically shared libraries that have a factory method > > that returns a instances of a subclass of KCModule. > > Well, I've managed to get kicker to load a shared library and call the C++ > "init" factory function as normal. This starts a Python interpreter, looks > for the relevant Python module, imports it then calls the "init" function > in the module. The "init" function creates an instance of the KPanelApplet > subclass and returns this to the C++ function. > > -> C++ "init" > ... > -> Python "init" > ... > -> AppletClass.__init__ > ... > applet <- > ... > pInstance <- > > The instance is then converted to a pointer using > > panel_applet = (KPanelApplet*)sipMapSelfToThis(pInstance); > > which is returned to the caller. Kicker (or its applet loading proxy) then > crashes, rather unhelpfully failing to provide a traceback. > > Any ideas on what I'm doing wrong would be good at this point.
If pInstance is the Python instance object (of class KPanelApplet) then use sipConvertToCpp() and not sipMapSelfToThis(). Phil _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
