[PyQt] How does PyQt handle inlined functions?
Dimitar Dobrev
dpldobrev at yahoo.com
Sat Nov 23 16:55:45 GMT 2013
I am curious about how it works because I develop bindings for Qt myself. They are for C#, you can find the code at https://github.com/ddobrev/QtSharp. I compile C++ wrappers for inlines myself but I was wondering if there was some cleaner way.
Regards,
Dimitar
On Saturday, November 23, 2013 5:55 PM, David Boddie <david at boddie.org.uk> wrote:
The wrapper code is C++. To see how it works, download the source files for
PyQt and look in the sip directory. This contains sip files for the Qt
classes.
When you run configure.py, C++ code is generated in the directories called
QtCore, QtGui, and so on. You can see how the C++ functions are handled by
looking at the wrapper code for QModelIndex which can be found in the
QtCore/sipQtCoreQModelIndex.cpp file.
For example, the function that handles column() is meth_QModelIndex_column().
Are you having problems with debugging inlined functions, or are you just
curious about how it all works?
Regards,
David
On Saturday 23. November 2013, you wrote:
> Thank you for your reply. This produced wrapper code you mention - is
> it Python or C++? If it is Python, how is the C++ implementation of the
> original inlined function translated to Python? As an example, I can give
> most members of QModelIndex - row(), column(), model() and others.
>
> Regards,
> Dimitar
>
> On Saturday, November 23, 2013 3:32 PM, David Boddie <david at boddie.org.uk>
> wrote:
>
> On Fri, 22 Nov 2013 08:49:18 -0800 (PST), ddobrev wrote:
> > I was wondering how inlined functions are handled in PyQt. I mean not
> > those which are just declared inline but the ones that are actually
> > inlined. That is, no binary code is generated for them in the containing
> > lib during compilation but rather calls to them are replaced with their
> > implementation. Does PyQt, for example, distribute additional libraries
> > that contain all inlines? If not, what approach does it use?
>
> If the function is part of the public API then it will be described in a
> sip file and inlined in the wrapper code produced by sip.
>
> Can you give an example of an inline function that you think would need to
> be treated specially?
>
> Regards,
>
> David
> _______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20131123/f555cb89/attachment.html>
More information about the PyQt
mailing list