将CString转换为Python字符串对象
我有一个用来连接C语言和Python的函数包装器。这个包装器会接收两个字符串参数,然后把这两个字符串转换成一个元组,接着把这个元组传给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*
我尝试过使用PyUnicode_FromString这个API,但还是不行,错误依旧。
输入是字符串,我只是想让PyObject_CallObject这个函数正常工作,不管pValue是什么类型(最好也是字符串)……我该怎么做呢……
1 个回答
2
错误是无法将QString转换为const char*
所以你的字符串 fileName
和 className
是 QString
对象,而不是C字符串(const char*
)?你需要先转换一下数据,比如可以使用 QString::toAscii()
方法:
pValue = PyString_FromString(fileName.toAscii().data());