QCustomPlot添加自定义的图例,实现隐藏、删除功能。

文章介绍了在使用QT的Customplot绘制多曲线时,如何自定义图例以支持最多10条曲线的隐藏、删除,并保持界面整洁。作者详细描述了设计思路,包括使用布局管理、信号槽机制以及数据结构QDeque来管理曲线和颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

0 引入

使用customplot时候,绘制多条曲线的时候,需要对曲线删除,隐藏在增加,其自带的图列不太好看,自己就在QT中重新设计了以自定义的图例


1、问题

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
光网自带的图列如图所示,不带隐藏和删除功能,当然这些功能也能实现,隐藏的时候还会留下空位,不好看,删除的话就比较麻烦。
所以如何在QT中自定义一款自己的图例???
常用的官方增加图例的代码

  ui->widget->setInteractions(QCP::iSelectPlottables);      //数据可选
  ui->widget->legend->setSelectableParts(QCPLegend::spItems);
  ui->widget->legend->setVisible(true);
  ui->widget->legend->setFont(QFont("Helvetica", 9));
  ui->widget->legend->setRowSpacing(-3);

2、方法

需求:0、最多显示10条曲线,并且初始颜色固定
1、可以隐藏某条曲线
2、可以删除曲线,删除后该曲线颜色还使用;

1.设计

为了使画面看起来比较和谐,一般来说图例都在右上角。为了增加和删除保持布局的和谐,一般来说我把每一个 0———X作为一个widget,然后再右上角放一个垂直布局。

2.程序思路

1、布局如上所述, 0———X控件需要重绘事件,画那条线,然后隐藏和删除加上两个信号;
2、增加一条曲线的时候,设置其颜色,就会new一个上诉自定义的widget,并且它一个身份id;
3、隐藏的时候就是隐藏信号绑定一个槽函数,在则会个槽函数里面去判定那个widget需要隐藏;
4、删除和重复使用,需要一个队列(QDeque),原始队列放了10条曲线,用一条把从队首删去一个,删除的时候需要再队尾加上删除的曲线,这样就可以循环使用所有的曲线;
5、特别注意,删除曲线的时候数据结构中含有指针的情况,必须手动去delete,使用数据结构自带的方法是不可行的。

3、总结

上述方法最终是可行,我花了一上午编写到调试,是没有问题的,具体看最上面的那张图。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的挖掘机

谢谢大家的厚爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值