On Saturday 28 June 2003 3:32 am, Park joon cheol wrote:
> Error messages: A function with the same Python signature has already
> been defined
>
> C++ Code:
>
> Class foo
> {
> ...
>
> bool write (const QString §ion,
> const QString &entry,
> int value);
>
> int read (const QString §ion,
> const QString &entry,
> int value);
>
> bool write (const QString §ion,
> const QString &entry,
> double value);
>
> double read (const QString §ion,
> const QString &entry,
> double value);
>
>
> ...
> }
>
>
>
>
> sip code:
>
> class foo
> {
> ...
>
> bool write (const QString&,
> const QString&,
> int);
>
> int read (const QString&,
> const QString&,
> int );
>
> bool write (const QString&,
> const QString&,
> double );
>
> double read (const QString&,
> const QString&,
> double );
>
>
> ...
> }
>
>
> Is it possible to conversion C++'s overloaded method in SIP?
Yes, but you have to tighten up the signature. The problem is that Python will
normally automatically convert an int to a double and vice versa. The
solution is to add /Constrained/ to the int parameters which means "match an
int, and only an int" rather than "match an int and anything that can be
converted to an int".
For example...
bool write (const QString &, const QString &, int /Constrained/);
Also check out the PyQt .sip files for more examples.
Phil
_______________________________________________
PyKDE mailing list [EMAIL PROTECTED]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde