On Monday, August 27, 2012 09:12:27 PM David García Garzón wrote: > Sorry for the previous unfinished message. Here goes the final one. > > I am porting a CPython library (boost based indeed) from PyQt to PySide. > I had a function in the library that received a Sip wrapped widget > as a PyObject and I used the very ugly SIP api to recover a pointer to the > actual C++ QObject. > > Does anyone know how recover the C++ QObject from the PyObject in PySide?
You can use:
Shiboken::Object::cppPointer(...), it's on libshiboken basewrapper.h
It receives two parameters, a SbkObject* and a PyTypeObject*, the SbkObject*
will be your PyObject*, just cast it and make sure it always will be a Python
object representing a C++ object bound using Shiboken, the PyTypeObject* must
be the PyTypeObject* for QObject, you can get it using:
Shiboken::TypeResolver::get("QObject*")->pythonType();
TypeResolver class is located on libshiboken typeresolver.h header.
Hope this would help you.
> Thanks.
> David.
>
> PS: If someone is curious the current sip unwrapper, based on some snippets
> i found, is in here:
> http://clam-project.org/clam/trunk/ipyclam/sipunwrap.cxx
> And the function which uses it is bindUi in
> http://clam-project.org/clam/trunk/ipyclam/Clam_NetworkProxy.cxx
>
>
> _______________________________________________
> PySide mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/pyside
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ PySide mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/pyside
