[PyKDE] undefined KAcceleratorManager::manage(QWidget *)

Jim Bublitz jbublitz at nwinternet.com
Wed Dec 17 09:17:00 GMT 2003


On Tuesday December 16 2003 21:22, Patrick Stinson wrote:
> any idea why

> KAcceleratorManager::manage(QWidget *)

> would be undefined in libkdecorecmodule after building pykde?
> I have only one libkdecore and libkdecorecmodule on my
> machine.

> I'm using:
> 	qt-3.2.2
> 	python-2.3.2
> 	sip-3.9
> 	pyqt-3.8.1
> 	PyKDE-3.8.0

> I'm sure it's just a version mismatch in a peice of code,
> but...
 
In the kdelibs sources I have (from kde.org) beginning with KDE 
3.1.3, kaccelmanager.[h, cpp] appear in both kdecore and kdeui. 
sip won't accept the symbols in both modules (since kdeui 
imports kdecore), so I made the choice to include it only in 
kdecore. Apparently some (or all?) distributions include it only 
in libkdeui, so all of its symbols will be undefined in the 
PyKDE kdecore module.

The solution (which appears to work in all cases) is to delete 
kaccelmanager.sip from the kdecore-kde3*.sip files and add it to 
the kdeui-kde3*.sip files. The line to be deleted/added is:

%Include kaccelmanager.sip

in each case. You then need to rebuild and recompile PyKDE. It's 
only necessary to modify the kdecore-kde3*.sip and 
kdeui-kde3*.sup files that correspond to the version of KDE 
you're compiling against. The files are in the sip/ directory.

Future versions of PyKDE will have this fix.

Jim




More information about the PyQt mailing list