[PyQt] [SIP] TypeError: unable to convert a C++ Class::ScopedEnum instance to a Python object
Phil Thompson
phil at riverbankcomputing.com
Sun Oct 6 21:26:15 BST 2019
On 06/10/2019 20:51, Denis Rouzaud wrote:
> Hi Phil,
>
> Thanks for the reply.
>
> I don't see anything particular in that file, except a difference: my
> enum
> is not declared in the same file/class that the one emitting the
> signal. Is
> there some kind of include I could add, or some method code in the
> signal?
>
> Otherwise, I could not find any ScopesStripped annotation. Is it worth
> a
> try? Do you have any example?
The .sip file I mentioned.
Phil
> Cheers,
> Denis
>
> Le sam. 5 oct. 2019 à 10:44, Phil Thompson
> <phil at riverbankcomputing.com> a
> écrit :
>
>> 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