windows下 QT C++ 调用python的方法
时间: 2024-01-28 14:05:20 浏览: 181
在 Windows 下使用 Qt C++ 调用 Python 有多种方法,以下是其中一种比较简单的方法:
1. 安装 Python 和 PyQt
首先,在 Windows 下安装 Python 和 PyQt。
2. 创建 Qt 项目
使用 Qt Creator 创建一个 Qt 项目,选择 C++ 应用程序。
3. 添加 Python 支持
在项目的 .pro 文件中添加以下内容:
```
CONFIG += link_pkgconfig
PKGCONFIG += python-3.6
LIBS += -LC:/Python36/libs -lpython36
INCLUDEPATH += C:/Python36/include
DEPENDPATH += C:/Python36/include
```
其中,python-3.6 是你安装的 Python 版本号,C:/Python36 是 Python 的安装路径。
4. 创建 Python 脚本
在项目中创建一个 Python 脚本,例如 test.py,内容如下:
```
def add(a, b):
return a + b
```
5. 在 C++ 中调用 Python
在 C++ 中调用 Python 可以使用 Python.h 头文件和 Python 的 API。以下是一个简单的示例:
```cpp
#include <Python.h>
int main(int argc, char *argv[])
{
Py_Initialize();
PyObject *pModule = PyImport_ImportModule("test");
if (pModule) {
PyObject *pFunc = PyObject_GetAttrString(pModule, "add");
if (pFunc && PyCallable_Check(pFunc)) {
PyObject *pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, PyLong_FromLong(1));
PyTuple_SetItem(pArgs, 1, PyLong_FromLong(2));
PyObject *pResult = PyObject_CallObject(pFunc, pArgs);
if (pResult) {
long result = PyLong_AsLong(pResult);
printf("result=%ld\n", result);
Py_DECREF(pResult);
}
Py_DECREF(pArgs);
}
Py_DECREF(pFunc);
}
Py_DECREF(pModule);
Py_Finalize();
return 0;
}
```
以上示例代码调用了 Python 脚本中的 add 方法,传入两个参数 1 和 2,输出结果 3。
注意事项:
- 在调用完 Python API 后需要释放对象,避免内存泄漏。
- 实际项目中,可能需要使用 PyGILState_Ensure 和 PyGILState_Release 来保证线程安全。
阅读全文