[PyQt] [SIP] TypeError: unable to convert a C++ Class::ScopedEnum instance to a Python object

Phil Thompson phil at riverbankcomputing.com
Sat Oct 5 09:44:24 BST 2019


On 02/10/2019 07:48, Denis Rouzaud wrote:
> Hi list,
> 
> I have a scoped enum in a class, a signal emitting this enum.
> 
> So something like
> 
> MyClass
> {
>   public:
>     enum class MyEnum
>     {
>     .....
>     };
> 
>    signals:
>         void mySignal( MyEnum enum );
> }
> 
> 
> If in Python, I do:
> 
> def slot( enum ):
>   print( enum );
> myClassInstance.mySignal.connect(slot)
> 
> I get this error:
> TypeError: unable to convert a C++ MyClass::MyEnum instance to a Python
> object
> 
> 
> Any idea how to solve this?

The following seems to work fine...

from PyQt5.QtNetworkAuth import QOAuth1

def slot(e):
     print(e)

auth = QOAuth1()
auth.statusChanged.connect(slot)

...so I'd suggest looking at qabstractoauth.sip (and maybe the 
ScopesStripped annotation).

Phil


More information about the PyQt mailing list