[PyQt] SIP: exposing C++ shift operators
Phil Thompson
phil at riverbankcomputing.co.uk
Thu Jul 9 21:49:02 BST 2009
On Thu, 09 Jul 2009 20:14:07 +0200, Giovanni Bajo <rasky at develer.com>
wrote:
> Hi Phil,
>
> I'm trying to expose a global operator function through SIP. The first
> argument is not an object wrapped by SIP, but I don't really care: it
> would be sufficient if it was possible to call it from Python as a
> normal function call. I tried this:
>
> void operator<<(A& a, B& b) /PyName=foobar/;
>
> but it doesn't work because SIP generates this code:
>
> __lshift__(*a0, *a1);
Actually it should display an error message.
> It would work if it generated this:
>
> operator<<(*a0, *a1);
>
> Does this make sense? Is it a simple fix that I can do myself?
Global operators are supported but only if the first argument is a wrapped
class.
Instead just define...
void foobar(A& a, B& b);
%MethodCode
operator<<(*a0, *a1);
%End
Phil
More information about the PyQt
mailing list