2. Qt中调用含有第三方包的Python代码
在上篇文章中讲述了Qt调用Python代码,其中Python代码中不含有第三方包。而当Python代码中含有第三方包的时候,上篇文章中的调用方式就会出现问题,这篇文章讲述怎么调用第三方包。
1.Qt和Python的配置在上一篇中已经详述,如有需要参照上一篇。
https://blog.nowcoder.net/n/200c03a6b42a4e4d9257e897fcb60b77
2.Qt中建立一个项目。
(1)建立Qt Widgets Application项目
(1)建立Qt Widgets Application项目
(2)绘制界面。
(3)新建一个Python画图函数,该函数参数为图片的保存路径。
import matplotlib.pyplot as plt import numpy as np import math def drawHeart(address): t = np.linspace(0, math.pi, 1000) x = np.sin(t) y = np.cos(t) + np.power(x, 2.0/3) plt.plot(x, y, color='red', linewidth=2) plt.plot(-x, y, color='red', linewidth=2) plt.xlabel('x') plt.ylabel('y') plt.ylim(-2, 2) plt.xlim(-2, 2) plt.savefig(address)
(4)编写“确定”按钮槽函数。
PyRun_SimpleString("import sys");//申明添加系统文件 PyRun_SimpleString("sys.argv = ['python.py']");//申明系统文件是python文件 PyRun_SimpleString("sys.path.append('D:/Python3.7/')");//说明系统文件所在路径
这三句是调用Python第三方包的关键,缺少后不能调用含有第三方包的Python代码。在Python中路径使用'/'(反斜杠),不要使用\(斜杠),使用斜杠;会被认为是转义字符,造成错误。系统文件所在路径,就是安装Python的路径,如下图:
(5)Python代码文件到Qt的debug目录下。
(6)运行Qt,指定图片保存路径和图片名称,这里的路径一定是'/'(反斜杠),不要用''(斜杠)。
(7)运行结果。