0
点赞
收藏
分享

微信扫一扫

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python


作者:虚坏叔叔

早餐店不会开到晚上,想吃的人早就来了!😄

完成Qt项目创建并引入python

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_qt

一、创建​​QT​​项目

创建一个项目​​PyPlayer​​:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_qt_02

选择​​QWidget​​:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_函数_03

为了后面调试的方便,将子系统设置为​​控制台​​:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_python_04

二、项目中引入python,并完成python初始化

从之前的​​cpp_call_py​​​项目,将​​python​​​的环境拷贝到​​Pyplayer​​中:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_qt_05

添加​​./include​​​,引入​​python​​的头文件目录:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_python_06

初始化​​python​​的环境

#include <Python.h>
#include "PyPlayer.h"


PyPlayer::PyPlayer(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);

Py_SetPythonHome(L"./");
Py_Initialize();
}

三、载入pyqt模块

添加​​python​​​文件​​pyqt.py​

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_c_07

​pyqt.py​​的内容如下:

print("Python PyPlayer")

#主函数 在子线程中调用,线程是c++创建
def main():
print("Python main")

在​​c++​​端载入模块:

#include <Python.h>
#include "PyPlayer.h"

static PyObject *pModule = 0;
PyPlayer::PyPlayer(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);

Py_SetPythonHome(L"./");
Py_Initialize();

// 载入模块
pModule = PyImport_ImportModule("pyqt");
if (!pModule)
{
printf("PyImport import error");
PyErr_Print();
return;
}

// 开启线程 调用python的 main函数



}

可以看到载入模块成功了:

Python&C++相互混合调用编程全面实战-22完成Qt项目创建并引入python_visualstudio_08

四、总结

  • 本文使用​​QT​​创建了项目并引入python,并且这个项目加载python模块。



举报

相关推荐

0 条评论