[PyKDE] enum arguments in sip

Jim Bublitz jbublitz at nwinternet.com
Wed Sep 10 17:51:01 BST 2003


On Wednesday September 10 2003 00:30, Patrick Stinson wrote:
> I've been using sip to generate python bindings for my lib,
> but ran into a problem with passing an enum to a member
> method.

> sip file:
> ----------------------
> public:

>   enum ModuleType
>   {
>     Module,
>     Producer,
>     Consumer
>   };

>   static void AddModule(PK_Module *, ModuleType);

> header file:
> ------------------------
> public:
>
>   enum ModuleType
>   {
>     Module,
>     Producer,
>     Consumer
>   };
>
>   PK();
>
> python code:
> -------------------------
> PK.AddModule(po, PK.Producer)
>
> python exception:
> -------------------------
>
> Traceback (most recent call last):
>   File "test.py", line 18, in ?
>     t.slotLoad("/home/ajole/track.wav")
>   File "/usr/home/ajole/src/pksampler/pksampler/Track.py",
> line 514, in slotLoad
>     PK.AddModule(po, PK.Producer)
> TypeError: Argument 1 of PK.AddModule() has an invalid type

Try changing this:

    static void AddModule(PK_Module *, ModuleType);

to this:

    static void AddModule(PK_Module *, PK::ModuleType);

sip usually wants fully qualified (nested) names for all 
references.

Jim




More information about the PyQt mailing list