VS2015编译PythonQt库


前言

记录自己如何使用PythonQt。

1.新建一个QWidget项目

文件->新建->项目,其他自己命名即可。
![(https://img-blog.csdnimg.cn/20201124152856536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTQ0NTExNg==,size_16,color_FFFFFF,t_70#pic_center)
解决方案资源管理器


2.设置环境变量

如图,

在这里插入图片描述

3.项目设置

把PythonQt的src目录完整复制到MyPythonQtTest项目路径中。
在这里插入图片描述

右键项目->属性,打开C/C++。
附加包含目录的值如下

D:\git\test\PythonQt3.2\extensions\PythonQt_QtAll;$(Qt_INCLUDEPATH_);%(AdditionalIncludeDirectories);
D:\VS2015Workspace\MyPythonQtTest\src;
.;
D:\python27_32/PC;
D:\python27_32\include;
E:\QT5.9.9\5.9.9\msvc2015\include;E:\QT5.9.9\5.9.9\msvc2015\include\QtOpenGL;
E:\QT5.9.9\5.9.9\msvc2015\include\QtWidgets;E:\QT5.9.9\5.9.9\msvc2015\include\QtGui;E:\QT5.9.9\5.9.9\msvc2015\include\QtANGLE;E:\QT5.9.9\5.9.9\msvc2015\include\QtTest;
E:\QT5.9.9\5.9.9\msvc2015\include\QtCore;release;E:\QT5.9.9\5.9.9\msvc2015\mkspecs\win32-msvc

然后打开链接器,设置附加库目录
在这里插入图片描述
值为

$(Qt_LIBPATH_);%(AdditionalLibraryDirectories);
E:\QT5.9.9\5.9.9\msvc2015\lib;
D:\git\test\PythonQt3.2\lib

注意这里的D:\git\test\PythonQt3.2\lib是我的PythonQt编译成功后生成的lib目录,所以根据自己的实际情况修改。

点击链接器->输入,附加依赖项中的值为

D:\python27_32\libs\python27.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\qtmain.lib;
D:\git\test\PythonQt3.2\lib\PythonQt-Qt5-Python27.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\Qt5OpenGL.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\Qt5Widgets.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\Qt5Gui.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\Qt5Test.lib;
E:\QT5.9.9\5.9.9\msvc2015\lib\Qt5Core.lib;%(AdditionalDependencies)

在常规中可以设置输出目录和输出文件名,以确定生成的exe所在目录。

4.编写代码

在Resource files中添加现有项,将PythonQt3.2\examples\PyGuiExample目录下的example.py添加进来。
然后在main.cpp中编写代码


#include "PythonQt.h"
//#include "PythonQt_QtAll.h"
#include "gui/PythonQtScriptingConsole.h"

#include <QApplication>
#include <QWidget>
#include <QMainWindow>
#include <QPushButton>
#include <QLayout>

int main(int argc, char **argv)
{
	QApplication qapp(argc, argv);

	PythonQt::init(PythonQt::IgnoreSiteModule | PythonQt::RedirectStdOut);
	//PythonQt_QtAll::init();

	PythonQtObjectPtr  mainContext = PythonQt::self()->getMainModule();
	PythonQtScriptingConsole console(NULL, mainContext);

	// 调用Python脚本,这是一个窗口
	mainContext.evalFile(":example.py");

	console.show();
	return qapp.exec();
}

5.生成

右键项目生成,然后lib目录下出现exe(我设置的输出目录为…\lib,输出文件名字为MyPythonQtTest)。
在这里插入图片描述
这是直接点击运行exe是不行的,将pythonQt生成的dll文件放在目录下就可以了。
在这里插入图片描述
运行效果如图
在这里插入图片描述

总结

lib提供符号表,dll提供具体代码,dll是动态库,在运行时调用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值