[PyQt] downcast a base class to its template subclass
Qin Shen
jeanshen at tippett.com
Tue Nov 2 17:55:51 GMT 2010
Hi Phil,
Phil Thompson wrote:
> On Mon, 1 Nov 2010 17:26:41 -0700, Qin Shen <jeanshen at tippett.com> wrote:
>
>> Hi,
>>
>> In my non-template base class' .sip file, I used %ConvertToSubClassCode
>> directive
>> to downcast the base class type to its sub-class. If the sub-class is
>> not a template,
>> it all works fine. Now I need to derive a template sub-class from the
>> base class,
>> the sipFindType() won't work because there isn't any Python class
>> implemented
>> for the templated sub-class. What should I do in this case?
>>
>
> So how is the template sub-class implemented in Python? Your
> %ConvertToSubClassCode will need to explicitly check for the template
> sub-class and return the appropriate Python type.
>
The .sip file of the template sub-class is based on its C++ .h header file.
Its implementation in the .sip file has been omitted since I thought I
don't
need to put any implementation in the .sip file as its C++ header file has
been properly included.
When you asked how is the template sub-class implemented in Python, did you
mean that I need to put the C++ style implementation in .sip as well?
Do I need to use %MappedType to convert the template sub-class to/from a
Python
type. For a non-template class, sip usually generates a .cpp file for it
as well
as a corresponding sipType_BLAH. In the case of a template class, neither
was generated. I don't see a direct type match between a Python type and any
specialization of the template sub-class, and no sipType_ is generated for
the template class, how am I supposed to convert the type?
Do you have any example on this?
Thanks a lot,
-Jean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20101102/a7fbd245/attachment.html>
More information about the PyQt
mailing list