时间:2018年10月22日,学习任何物事都有个探索过程。欢迎留言探讨。
在Qt程序中,添加python进行混合编程,可以使用Python API,但交互起来很麻烦,不友好。网上推荐使用PythonQt框架。
强调下:
PythonQt,方便Qt C++程序员,将python引入项目
PyQt PySide,给python程序员,将Qt界面引入项目
本机环境:
1、win7 64 旗舰版
2、Qt 5.11.2(MSVC 2015,32 bit)
3、Python 3.7.0 (32-bit)
4、PythonQt 3.2
准备工作:
1、安装最新Qt5.11.2,地址http://download.qt.io/archive/qt/5.11/,直接下载链接。
http://download.qt.io/archive/qt/5.11/5.11.2/qt-opensource-windows-x86-5.11.2.exe
2、PythonQt是发布在Sourceforge上的一款开源的连接Qt与Python的框架,主页地址http://pythonqt.sourceforge.net ,目前更新到版本3.2,直接下载链接:https://sourceforge.net/projects/pythonqt/files/latest/download,下载后解压。
3、下载Python 3.7.0 主页地址https://www.python.org/downloads/ ,直接下载链接:https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe,安装时记得勾选” Add Python 3.7 to PATH”以便注册环境变量。
编译前准备:
修改\PythonQt3.2\build下文件内容,原因是笔误或者未经测试的写法。
1、修改python.prf,修改python版本号,添加PYTHON_PATH,PYTHON_LIB,注意不能简单设定路径,还要改set 临时环境变量为变量的用法,就是$$()变为$${},修改前后见下图
2、修改PythonQt.prf,修改被拼错的路径,改为DESTDIR(vs和qt creator生成中间文件的目录不一致的,使用DESTDIR就一致了),如下图:
3、修改PythonQt_QtAll.prf,修改拼写错误,如下图所示:
4、修改PythonQt3.2\src\src.pro生成的lib dll 有后缀3的问题,即添加CONFIG += skip_target_version_ext
5、修改\PythonQt3.2\extensions\PythonQt_QtAll.pro
开始编译:
方法1、使用VS编译,右键管理员运行createSolution.bat,使用vs打开PythonQt.sln,注意因为Python是二进制安装包,不是使用Qt编译源码来的,所以工程只能设置为Release,否则会提示Python_d.lib找不到。
编译PythonQt-Qt5-Python37,生成PythonQt-Qt5-Python37.lib和PythonQt-Qt5-Python37.dll
编译PythonQt_QtAll-Qt5-Python37,生成PythonQt_QtAll-Qt5-Python37.lib,PythonQt_QtAll-Qt5-Python37.dll
然后编译整个工程都会成功
方法2、使用Qt creator(vs2015),编译PythonQt.pro。
打开PythonQt.pro,注意工程要选择Release
右键PythonQt,构建,需要注意与vs编译不同的是,lib的生成目录,会变为上级目录的\build-PythonQt-Desktop_Qt_5_11_2_MSVC2015_32bit-Release\lib
OVER
参考资料/文献:
PythonQt Building http://pythonqt.sourceforge.net/Building.html
PythonQt Introduction http://pythonqt.sourceforge.net/index.html
将Python嵌入到Qt程序中 https://my.oschina.net/u/2306127/blog/369663
编译PythonQt的一点心得 https://blog.csdn.net/x18722498005/article/details/50975481
关于PythonQt3.1在Windows中的编译 https://blog.csdn.net/wcs20wp/article/details/62216103#commentBox
PythonQt在windows下的编译 https://www.cnblogs.com/zhangzhiming/p/5407644.html
编译PythonQt的一点心得 https://blog.csdn.net/x18722498005/article/details/50975481
QT的pro文件编写,高效简洁,,路径设置 有空格 引入系统环境变量 https://blog.csdn.net/zkl99999/article/details/61197930
PythonQT 3.2 build failing on Windows https://sourceforge.net/p/pythonqt/discussion/631393/thread/45d39c91/
PythonQt使用
在Qt(C++)中与Python混合编程 https://www.cnblogs.com/xia-weiwen/p/7932379.html
PythonQt试用手记 https://blog.csdn.net/jingwenlai_scut/article/details/5325448
PythonQt进阶http://www.cnblogs.com/zhangzhiming/p/5409284.html
C/C++使用Python API 方式与Python交互
C++调用Python浅析 https://blog.csdn.net/magictong/article/details/8947892
QT C++中直接调用python接口 https://blog.csdn.net/xiranchen/article/details/41843609
Qt与Python的混合编程相关配置以及问题说明 https://blog.csdn.net/chyuanrufeng/article/details/77753733
Qt中使用python--Hello Python! https://www.cnblogs.com/kaikai-king/p/7976339.html
QT中 使用c++调用 python http://www.cnblogs.com/shenghl/p/4442528.html
Qt+Python混合编程 https://blog.csdn.net/qq_29176963/article/details/82776575#_216
原文地址:https://www.cnblogs.com/jsjrj01/p/9830549.html