本代码实现的功能:
- 实时动态双曲线
- 可以鼠标拖拽
- 可以保留已经产生的数据
- 随着鼠标的移动实时显示X、Y轴坐标
![5c6b926c1e114e5b3f63edf4fc3f5198.png](https://i-blog.csdnimg.cn/blog_migrate/69e91660a9ee8540a92417d2c17d3421.jpeg)
在.pro中
QT += charts
在ChartView.h中
#ifndef __CHARTVIEW_H__
#define __CHARTVIEW_H__
#include
#include
QT_CHARTS_USE_NAMESPACE
class ChartView : public QChartView
{
public:
ChartView(QChart *chart, QWidget *parent = 0);
protected:
void keyPressEvent(QKeyEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
bool isClicking;
int xOld;
int yOld;
QGraphicsSimpleTextItem* m_coordItem;
};
#endif /* __CHARTVIEW_H__ */
在ChartView.cpp中
#include "chartview.h"
ChartView::ChartView(QChart *chart, QWidget *parent) :
QChartView(chart, parent),
isClicking(false),
xOld(0), yOld(0)
{
setRubberBand(QChartView::RectangleRubberBand);
}
void ChartView::mousePressEvent(QMouseEvent *event)
{
if (event->button() & Qt::LeftButton) {
isClicking = true;
} else if (event->button() & Qt::RightButton) {
chart()->zoomReset();
}
QChartView::mousePressEvent(event);
}
void ChartView::mouseMoveEvent(QMouseEvent *event)
{
int x, y;