将cstring转换为python字符串对象
问题描述:
我有一个c和python的函数包装器。这个包装器将接收2个字符串参数并将这两个参数转换为一个元组并将其传递给python脚本。 fileName和className是c字符串参数。 pFunc是python函数名称。将cstring转换为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 *
我曾尝试PyUnicode_FromString API,但仍不起作用,并给出了同样的错误
输入是字符串,我只是想使PyObject_CallObject工作,不管什么类型的P值的是(最好串过)......我如何做到这一点...
答
错误是不能转换的QString为const char *
所以你的字符串fileName
和className
是QString
对象,而不是C字符串(const char*
)?您必须首先转换数据,例如使用QString::toAscii()
:
pValue = PyString_FromString(fileName.toAscii().data());