如何在 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 也有匹配的绘图库:您可以查看 QCustomPlotQwt @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 脚本

如何在 Qt Quick 中将 QML 项目转换为相应的 C++ 项目

怎么用qt调用java?

在现有 C++ QT 项目中实例化 QML 对象

Qt5 在 Python 脚本中调用函数

如何让python调用C和C++代码