QCustomPlot QCPItemLine

Posted

技术标签:

【中文标题】QCustomPlot QCPItemLine【英文标题】: 【发布时间】:2014-12-08 11:33:48 【问题描述】:

我想问一个关于 qcustomplot 的问题。如何根据 Slider 更改 itemLine 位置? (如 x = a)

#include "itemline.h"
#include "ui_itemline.h"
#include "qcustomplot.h"

itemLine::itemLine(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::itemLine)

    ui->setupUi(this);

    QCPItemLine *item = new QCPItemLine(ui->customPlot);
    ui->customPlot->addItem(item);
    item->setPen(QPen(Qt::red));
    item->start->setCoords(1,0);
    item->end->setCoords(1,5);

    connect(ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(horzSliderChanged(int)));


itemLine::~itemLine()

    delete ui;


void itemLine::horzSliderChanged(int value)

     // how can i change item position acording to horizontalSlider, like "x = a" line ?

【问题讨论】:

【参考方案1】:

首先,您应该将指向QCPItemLine 的指针保留为类成员。之后horzSliderChanged 插槽可能是这样的:

void itemLine::horzSliderChanged(int value)

    item->start->setCoords(value,0);
    item->end->setCoords(value,5);
    ui->customPlot->replot();

【讨论】:

如何将指向 QCPItemLine 的指针保留为类成员?抱歉,我是 Qt 新手。 这与 Qt 无关。你应该学习 C++。只需在类头文件中声明指针即可。 好的,谢谢。你说得对,我必须学习 C++。我照你说的做了,就可以了。谢谢内贾特。

以上是关于QCustomPlot QCPItemLine的主要内容,如果未能解决你的问题,请参考以下文章

QCustomPlot开发笔记:QCustomPlot用户交互元素项以及特殊用法

QCustomPlot开发笔记:QCustomPlot简介下载以及基础绘图

QTVS2017+QT使用QCustomPlot绘图

QTVS2017+QT使用QCustomPlot绘图

QCustomPlot之Item(十)

QCustomPlot图形和图例同步方法