c++ 有没有与PyString_AsString具有类似属性的pybind11方法

qvtsj1bj  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(109)

我正在尝试将c++项目从boost转换为pybind11

QString r = QString(PyString_AsString(result));"

QString r = QString(py::str(result));
dxxyhpgq

dxxyhpgq1#

在Pybind11中,你需要通过一个std::string

QString r = QString(result.cast<std::string>().c_str());"

当然,你也可以自己使用PyString_AsString

QString r = QString(PyString_AsString(result.ptr());

PyString_AsString来自一个Python版本,该版本已经完全不受支持超过2年。你应该考虑是否应该使用它。

ao218c7q

ao218c7q2#

为了补充上述答案,请避免使用PyString_AsString,这是一个原始的C Python API调用。
将python字符串转换为std::string

std::string intermediateStdString = std::string(py::str(result));

然后您可以将std::string转换为QString

QString finalQString = QString::fromStdString(intermediateStdString));

相关问题