[PySide] PySide C++ hybrid app.

peter_karasev at agilent.com peter_karasev at agilent.com
Thu Mar 20 16:13:27 CET 2014

Hi Michal,

 What makes this somewhat difficult (for me anyway) is when you are trying to expose non-QT classes together with shiboken QT classes. Boost python makes executing python from c++ pretty easy; I use template functors like this one to to grab QT objects in c++:


Once you register the converter with QtGui_from_python<QColor,SBK_QCOLOR_IDX>() , a boost::python wrapped class that returns QColor will end up returning a PySide.QtGui.QColor object on the python side.


From: pyside-bounces+peter_karasev=agilent.com at qt-project.org [pyside-bounces+peter_karasev=agilent.com at qt-project.org] on behalf of ntod8729 at uni.sydney.edu.au [ntod8729 at uni.sydney.edu.au]
Sent: Monday, March 17, 2014 10:42
To: Michał Pachocki; pyside at qt-project.org
Subject: Re: [PySide] PySide C++ hybrid app.

Hi Michal,

You need to first embed the Python interpreter into your C++ application. You can find the relevant information on doing that here<http://docs.python.org/2/extending/embedding.html> . Section 5.3 shows you how you can call a Python function from C++. You then need to wrap your function arguments as PyObects using either the python C API (for types such as int, char * etc.) or shiboken (for Qt classes) in order to pass them to your Python function. You will also need to unwrap any return types to retrieve a pointer to use in C++. There is some code that demonstrates the wrapping/unwrapping here in some of the source from the CLAM project<http://clam-project.org/clam/trunk/ipyclam/>. Admittedly I haven't tried the shiboken code myself as I had already rolled my own before stumbling across this, but I based some code on their sipunwrap source for doing the same thing with PyQt without any problems.

Hope this helps,
Nick ​

From: pyside-bounces+ntod8729=uni.sydney.edu.au at qt-project.org <pyside-bounces+ntod8729=uni.sydney.edu.au at qt-project.org> on behalf of Michał Pachocki <mpachock at gmail.com>
Sent: Monday, 17 March 2014 3:39 PM
To: pyside at qt-project.org
Subject: [PySide] PySide C++ hybrid app.


In tutorial "SuperHybrids part 2, now Qt + PySide [1]" there is a description how run python code from c++ lib, but the app is running from python. How to make calls to PySide from native C++ app, so C++ objects will be visible from Python and vice-versa?

[1] http://lynxline.com/superhybrids-part-2-now-qt-pyside/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20140320/861021fb/attachment.html>

More information about the PySide mailing list