[PySide] Obtaining QObject from PySide based PyObject (complete)
David García Garzón
david.garcia at upf.edu
Tue Aug 28 14:48:32 CEST 2012
On Monday 27 August 2012 16:23:03 Hugo Parente Lima wrote:
> 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.
>
Yes, thanks, this seems to be just what i needed. You even provided answer to
what i wanted to ask next, how to identify pyside objects. No time to try it
just now but i am eager to try it to see if it works. Thanks a lot.
David
More information about the PySide
mailing list