Hi John,

This array type need be implemented manually because this is a complex
operation and this depends of the c++ function.
Take a look on this sample[1] on shiboken test library, you can find a
way to handle this.


[1]https://qt.gitorious.org/pyside/shiboken/blobs/master/tests/samplebinding/typesystem_sample.xml#line880


BR

On Tue, May 24, 2011 at 1:56 PM, John Cummings <[email protected]> wrote:
> On 05/24/2011 11:43 AM, John Cummings wrote:
>> Hello,
>>
>> I received the warning message:
>>
>> skipping field 'scalar' with unmatched type size_t
>>
>> in my bindings and simplified the problem to make it happen when
>> building a modified version of the libfoo example.
>>
>> I found this thread from the mailing list that included a partial solution:
>>
>> http://groups.google.com/group/pyside/browse_thread/thread/b17ebb2a0b8e9698/97e1a0d0832ffc9d
>>
>> The basic answer was twofold. First, use the proper include file. I
>> added the <cstddef> header in my case. This addition didn't seem to make
>> a difference for me. The second part was to explicitly tell the
>> generator what a size_t should be:
>>
>> <primitive-type name="size_t" default-constructor="0"
>> target-lang-api-name="PyLong" />
>>
>> This method generally works, however, I have two issues with this approach:
>>
>> 1. Is a PyLong really the same as size_t on all platforms (32/64 bit,
>> Linux, Windows, Mac, etc.)?
>> 2. This approach doesn't seem to work for array types.
>>
>> On the not working with an array, I modified the libfoo example and
>> added two public member variables:
>>
>> size_t scalar;
>> size_t array[2];
>>
>> That is, one regular variable and one array. The regular variable
>> compiles just fine. The array variable does not compile and fails as
>> follows using 1.0.2 release on 64-bit Linux:
>>
>> math_wrapper.cpp: In function ‘int Sbk_Math_set_array(PyObject*,
>> PyObject*, void*)’:
>> math_wrapper.cpp:360:10: error: ‘isConvertible’ is not a member of
>> ‘Shiboken::Converter<long unsigned int []>’
>> math_wrapper.cpp:365:56: error: ‘toCpp’ is not a member of
>> ‘Shiboken::Converter<long unsigned int []>’
>>
>> The array syntax has obviously confused the generator. I just tried
>> changing the C++ code to use an "int" instead of size_t and I get
>> basically the same error. Perhaps I have unwittingly uncovered a larger
>> bug, although I suspect I have simply missed some documentation.
>>
>> I can certainly file a bug report if necessary.
>>
>> Thank you
>> John Cummings
>> _______________________________________________
>> PySide mailing list
>> [email protected]
>> http://lists.pyside.org/listinfo/pyside
>>
>
> The Google link I sent apparently requires a login, try gmane instead to
> enjoy login-free browsing:
>
> http://article.gmane.org/gmane.comp.lib.qt.pyside/1589/
>
> My apologies for sending a semi-hidden link.
>
>
> _______________________________________________
> PySide mailing list
> [email protected]
> http://lists.pyside.org/listinfo/pyside
>



-- 
Renato Araujo Oliveira Filho
Instituto Nokia de Tecnologia - INdT
_______________________________________________
PySide mailing list
[email protected]
http://lists.pyside.org/listinfo/pyside

Reply via email to