如何在 Qt C++ 项目中调用 python matplotlib?
Posted
技术标签:
【中文标题】如何在 Qt C++ 项目中调用 python matplotlib?【英文标题】:How to call python matplotlib in Qt C++ project? 【发布时间】:2014-07-11 04:48:01 【问题描述】:Python matplotlib 给出了非常好的数字。我想把这些数字放在 Qt 对话框中,数据通过内存传输。
【问题讨论】:
必须是matplotlib吗? Qt 也有匹配的绘图库:您可以查看 QCustomPlot 或 Qwt。 @Tay2510 QCustomPlot 和 Qwt,哪个更好?谢谢。 视情况而定。QCustomPlot
在交互式绘图中效果更好,但大多数是 2D 绘图。另一方面,Qwt
支持更复杂的绘图,如 3D 绘图,但不太擅长交互式绘图。
【参考方案1】:
您可以创建一个带有对 matplotlib 的函数调用的 python 脚本,并将它们作为回调函数添加到您的 C++ 代码中。
This tutorial 解释了如何做到这一点。
我还建议阅读Python.h 上的文档。
【讨论】:
【参考方案2】:我会尝试使用matplotlib-cpp。它的构建类似于 Matlab 和 matplotlib 使用的绘图 API。基本上它是一个围绕 matplotlib 的 C++ 包装器,它只是标题。请记住,尽管它不提供 python 的所有 matplotlib 功能。
这是来自 GitHub 的初始示例:
#include "matplotlibcpp.h"
namespace plt = matplotlibcpp;
int main()
plt::plot(1,3,2,4);
plt::show();
编译
g++ minimal.cpp -std=c++11 -I/usr/include/python2.7 -lpython2.7
【讨论】:
我认为不可能与 qt 集成,因为这个问题暗示 github.com/lava/matplotlib-cpp/issues/115以上是关于如何在 Qt C++ 项目中调用 python matplotlib?的主要内容,如果未能解决你的问题,请参考以下文章
在 QT Creator 中使用 C++ 调用 Python 脚本