конвертировать cstring в объект строки Python - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть функция-обертка для c и python.Эта оболочка получит 2 строковых аргумента, преобразует их в кортеж и передает их скрипту Python.fileName и className являются строковыми аргументами c.pFunc - это имя функции Python.

PyObject *pArgs, *pValue,*pFunc;
pValue = PyString_FromString(fileName);
PyTuple_SetItem(pArgs, 0, pValue);
pValue = PyString_FromString(className);
PyTuple_SetItem(pArgs, 0, pValue);
pValue = PyObject_CallObject(pFunc, pArgs);

ошибка не может преобразовать QString в const char *

Я пробовал API PyUnicode_FromString, но все еще не работает и выдал ту же ошибку

входные данные являются строками, и я просто хочу, чтобы PyObject_CallObject работал, независимо от того, какой тип pValue (желательно также и для строк) .... как мне это сделать ...

1 Ответ

2 голосов
/ 13 декабря 2011

ошибка не может конвертировать QString в const char *

То есть ваши строки fileName и className являются QString объектами, а не строками C (const char*)? Сначала необходимо преобразовать данные, например, используя QString::toAscii():

pValue = PyString_FromString(fileName.toAscii().data());
...