将cstring转换为python字符串对象

问题描述:

我有一个c和py​​thon的函数包装器。这个包装器将接收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 *

所以你的字符串fileNameclassNameQString对象,而不是C字符串(const char*)?您必须首先转换数据,例如使用QString::toAscii()

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