简介
QCustomPlot 是一个基于 Qt 的 C++ 绘图库,用于绘制各种类型的 2D 图形,包括曲线、散点图、条形图、饼图、图像、轴标签等。它提供了一组易于使用的 API 和丰富的功能,可以让您轻松地创建出令人满意的绘图效果。QCustomPlot 还支持用户自定义绘图元素,使您可以轻松地实现自己的绘图需求。
QCustomPlot 的主要特点包括:
- 支持多种类型的 2D 绘图,包括曲线、散点图、条形图、饼图和图像等。
- 提供了丰富的定制功能,例如轴标签、图例、坐标轴范围、曲线颜色、曲线宽度、填充等。
- 具有良好的性能和稳定性,支持大规模数据绘图。
- 易于使用,提供了清晰简洁的 API,有丰富的开发文档和示例代码。
- 开源免费,可用于商业和非商业用途。
如果您需要在 Qt 应用程序中添加绘图功能,QCustomPlot 是一个很好的选择。它提供了灵活的绘图定制选项,使您可以创建出令人满意的绘图效果,并且易于使用和集成到您的应用程序中。
源码包
CPU渲染
启动GUP渲染
修改 void QCPPaintBufferGlFbo::draw(QCPPainter *painter) const
函数
void QCPPaintBufferGlFbo::draw(QCPPainter *painter) const
{
if (!painter || !painter->isActive())
{
qDebug() << Q_FUNC_INFO << "invalid or inactive painter passed";
return;
}
if (!mGlFrameBuffer)
{
qDebug() << Q_FUNC_INFO << "OpenGL frame buffer object doesn't exist, reallocateBuffer was not called?";
return;
}
// 修改添加,和openGL有关
/*----------------------*/
if (QOpenGLContext::currentContext() != mGlContext.data())
{
mGlContext.data()->makeCurrent(mGlContext.data()->surface());
}
/*----------------------*/
painter->drawImage(0, 0, mGlFrameBuffer->toImage());
}