QT qcustomplot 实战经验分享之四:曲线缩放、拖动

曲线拖动、缩放
主要为一个函数实现
ui->widget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | 
QCP::iSelectLegend | QCP::iSelectPlottables);
  • 说明
  • QCP::iRangeDrag:可以拖动
  • QCP::iRangeZoom:可以缩放
  • QCP::iSelectLegend:图像选择,没用到,不知道效果
  • QCP::iSelectPlottables:图层可以选择,实测就是可以选中曲线
  • QCP::iSelectAxes:坐标轴选择
拓展功能
实际应用中,我们放大图形以后需要回到初始状态,逻辑就是重新设置x,y轴的范围
// 恢复原始界面
void PLOT::on_toolButton_clicked()
{
    ui->widget->xAxis->setRange(0,20);
    ui->widget->yAxis->setRange(0,400);
    ui->widget->replot();
}
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt中,可以使用QCustomPlot库来绘制多曲线图,并且也可以实现曲线图例的选中功能。 QCustomPlot是一个非常强大的Qt绘图库,它提供了丰富的绘图功能,可以绘制曲线、散点、柱状图等。要实现多曲线图例的选中功能,可以按照以下步骤进行操作: 首先,我们需要创建一个QCustomPlot对象,并向其添加曲线。可以使用addGraph()函数添加多个曲线。例如: QCustomPlot *customPlot = new QCustomPlot(this); QCPGraph *graph1 = customPlot->addGraph(); QCPGraph *graph2 = customPlot->addGraph(); ... 然后,我们需要为每个曲线指定一个名称,以便在图例中显示。可以使用graph1->setName()函数为曲线1指定名称,graph2->setName()函数为曲线2指定名称,以此类推。 graph1->setName("曲线1"); graph2->setName("曲线2"); ... 接下来,我们需要显示图例。可以使用customPlot->legend->setVisible()函数将图例设置为可见,并根据需要设置图例的位置。 customPlot->legend->setVisible(true); customPlot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignBottom | Qt::AlignRight); 最后,我们需要设置曲线图例的选中功能。可以使用graph1->setSelectable()函数将曲线1设置为可选中,并根据需要设置曲线的选中状态。 graph1->setSelectable(QCP::stSingleData); graph1->setSelection(QCPDataSelection(graph1->data()->dataRange())); 通过以上步骤,我们可以实现曲线图例的选中功能。当图例中的某个曲线被选中时,可以通过相应的槽函数来处理选中事件,例如: connect(customPlot, &QCustomPlot::selectionChangedByUser, this, &MyClass::handleSelectionChanged); void MyClass::handleSelectionChanged() { // 处理选中事件 // 例如,可以根据选中的曲线来进行相应的操作 QCPDataSelection selection = customPlot->graph(0)->selection(); if (!selection.isEmpty()) { // 曲线1被选中 } else { // 曲线1未被选中 } } 以上就是使用QCustomPlot库实现多曲线图例选中的简单示例。通过设置曲线的名称、显示图例并设置选中功能,我们可以轻松地实现这个功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值