[python] Не понимаю систему типов
От: Аноним  
Дата: 30.11.10 16:39
Оценка:
Долго думал, в плюсы ли вопрос или сюда, решил сюда.

Есть класс на С++, наываемый cppclass. При помощи boost.python завернут в питоновый одноимённый класс. Находится в модуле mod.

Есть большой контрол на Qt, называемый qControl. Он экспортируется в питон при помощи PythonQt. Среди слотов этого контрола есть такой:
QString test(cppclass x)


В итоге такой код:

from mod import cppclass
c = cppclass(10)

qControl.test(c)


Даёт такой результат:

qControl.test(c)
ValueError: Called QString test(cppclass x) with wrong arguments: (<mod.cppclass object at 0xa37739c>,)


Кто-нибудь из питонщиков подскажет, как можно утрясти разницу типов?

Спасибо.
Re: [python] Не понимаю систему типов
От: Tonal- Россия www.promsoft.ru
Дата: 14.12.10 06:22
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Есть класс на С++, наываемый cppclass. При помощи boost.python завернут в питоновый одноимённый класс. Находится в модуле mod.
А>Есть большой контрол на Qt, называемый qControl. Он экспортируется в питон при помощи PythonQt. Среди слотов этого контрола есть такой:
А>
QString test(cppclass x)

А как PythonQt интерпретирует эту сигнатуру? Ты cppclass ему как-то показал?

А>from mod import cppclass
А>c = cppclass(10)
А>qControl.test(c)

А>Даёт такой результат:
А>qControl.test(c)
А>ValueError: Called QString test(cppclass x) with wrong arguments: (<mod.cppclass object at 0xa37739c>,)
PythonQt и boost.python друг о друге не в курсе, стало быть не знают что за типы там под python-овскими объектами лежат.
Я бы посоветовал либо писать всё только на PythonQt или только на boost.python, или передавать в test какой-нибудь общий объектный тип, типа python-овского Object-а, и дальше уже пытаться добывать из него исходный С++ный.
python qt pythonqt boost.python
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.