跳转至

开源 · LGPL 协议

Qt 绘图库

基于 Qt 的高性能 2D/3D 绘图库,专为科学计算和工程数据可视化设计。

C++11/17 CMake Qt 5.12+ / Qt 6
20+ 图表类型
2D & 3D 可视化
Qt 5 & 6 完全兼容
LGPL 商业友好

核心特性

为 Qt 应用的专业数据可视化提供所需的一切。

高性能

优化的 QPainter 渲染管线,面向大规模数据集。高效的重绘策略实现流畅的实时绘图。

丰富的图表类型

20+ 内置图表类型:曲线、散点、柱状图、箱线图、直方图、光谱图、K 线图、向量场、极坐标绘图以及 3D 曲面。

CMake & Qt6

完整的 CMake 支持,find_package(qwt) 一键引入。提供单文件合并版本,兼容 Qt 5.12+ 和 Qt 6。

多坐标轴系统

通过寄生绘图架构创建无限多的独立坐标轴 — 类似 matplotlib 的双轴系统,支持完整的交互。

现代设计

简洁的扁平化视觉风格,取代老旧的浮雕效果。专业美观,符合当代应用设计审美。

Figure 布局

类似 matplotlib 的 QwtFigure 多绘图网格布局。支持交互式的拖动、缩放,以及通过覆盖控件管理子绘图。

快速开始

几分钟内将 QWT 集成到你的项目中。

1
2
3
4
5
6
# 查找并链接 QWT
find_package(qwt REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE qwt::plot)

# 3D 绘图
target_link_libraries(${PROJECT_NAME} PRIVATE qwt::plot3d)
1
2
3
4
5
6
7
8
// 将以下两个文件加入项目:
//   src-amalgamate/QwtPlot.h
//   src-amalgamate/QwtPlot.cpp

#include "QwtPlot.h"

auto* plot = new QwtPlot();
auto* curve = new QwtPlotCurve("My Data");
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <qwt_plot.h>
#include <qwt_plot_curve.h>

auto* plot = new QwtPlot("My First Plot");
auto* curve = new QwtPlotCurve("Sine Wave");

QVector<QPointF> data;
for (double x = 0; x < 10.0; x += 0.1)
    data.append(QPointF(x, std::sin(x)));
curve->setSamples(data);

curve->attach(plot);
plot->resize(600, 400);
plot->show();