第一步 创建Qt工程
![](https://img-blog.csdnimg.cn/img_convert/afe546a5afbff4be9bf73aea9c6bb617.png)
第二步 在项目.pro文件下添加python解释器安装路径
![](https://img-blog.csdnimg.cn/img_convert/64b05d83579e41e170acf43f0642f708.png)
添加代码如下,大家可复制后更改python版本以及安装路径
INCLUDEPATH += C:\Python\include
LIBS += -LC:\Python\libs -lpython311
第三步 给项目添加Python文件
![](https://img-blog.csdnimg.cn/img_convert/f1823181b8a6173a63ca158c920e5a27.png)
![](https://img-blog.csdnimg.cn/img_convert/0465b93a3f198aea82d628d60a60b8d7.png)
第四步 编写python代码验证安装【简单案例】
在创建的python文件里边写入下面代码:
def add(a, b):
return a, b
![](https://img-blog.csdnimg.cn/img_convert/486d3e3d9a5a59682b2270d355265dc8.png)
在.h文件里边加入下面代码:【可以自己创建,我用的是创建项目生成的.h文件】
#include <Python.h>
#include <iostream>
#include <QDebug>
![](https://img-blog.csdnimg.cn/img_convert/337e9f70c6d595a125168baae79a1395.png)
在.h文件对应的.cpp文件里边的函数内加入以下代码:【析构函数不变】
//Python初始化
Py_Initialize();
if( !Py_IsInitialized() )
qDebug()<<"初始化失败";
//导入sys模块设置模块地址
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
//创建模块指针
PyObject* pModule = PyImport_ImportModule("Py_Module");
if (!pModule)
qDebug()<<"获取模块指针1失败";
//创建函数指针
PyObject* pFunc= PyObject_GetAttrString(pModule,"add");
if(!pFunc)
qDebug()<<"获取函数指针2失败";
//创建函数参数,方法1
PyObject* pPara = PyTuple_New(2); // 2个参数
PyTuple_SetItem(pPara, 0, Py_BuildValue("i",1)); //参数1为int型 1
PyTuple_SetItem(pPara, 1, Py_BuildValue("i",2)); //参数2为int型 2
//pPara = Py_BuildValue("(i,i)",1,2); //连写方式
//创建函数参数,方法2
PyObject* args = PyTuple_New(2); // 2个参数
PyObject* arg1 = PyLong_FromLong(4); // 参数一设为4
PyObject* arg2 = PyLong_FromLong(3); // 参数二设为3
PyTuple_SetItem(args, 0, arg1);
PyTuple_SetItem(args, 1, arg2);
//调用Python函数,传入元组参数pPara
PyObject *FuncBack = PyObject_CallObject(pFunc,pPara);
//PyObject_CallObject(pFunc,nullptr); //无参数调用
//FuncBack是返回值指针,转换获取返回值
int res = 0;
PyArg_Parse(FuncBack,"i",&res);
qDebug()<<"返回值: "<<res;
//调用结束,销毁
Py_Finalize();
![](https://img-blog.csdnimg.cn/img_convert/283b89dcca95ab533762fa0552110d1e.png)
![](https://img-blog.csdnimg.cn/img_convert/8c9908a0e1bd25f6477edce5d1efdacf.png)
点击运行
![](https://img-blog.csdnimg.cn/img_convert/181bc27c1934e8ef7e6745010243af39.png)
特别注意
一、导入python.h文件报错
![](https://img-blog.csdnimg.cn/img_convert/1968e7bef1cf22d4e79bd5c51abfb4f4.png)
解决方法
object.h文件报错一般是因为宏定义冲突的问题,我们在文件报错所在地方加上一行代码取消宏定义就可以了
#undef slots //取消宏定义
![](https://img-blog.csdnimg.cn/img_convert/9d29b0d8ef8f9fbda9eef84cb591c690.png)
二、运行后提示找不到.py文件路径或导入.py文件报错
解决方法
将项目下的.py文件复制到项目debug文件夹下
我的.py文件位置:C:\App\Qt\Qt_project\qt_python1
我的项目debug文件夹位置:C:\App\Qt\Qt_project\build-qt_python1-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\debug
![](https://img-blog.csdnimg.cn/img_convert/fe5e9718861f18509f2ea10328125f58.png)
![](https://img-blog.csdnimg.cn/img_convert/ab73b290935c36333ccde07fc27278cf.png)