下载资源后端资源详情
QChart_1_Demo.zip
大小:9.66KB
价格:33积分
下载量:0
评分:
5.0
上传者:weixin_42485732
更新日期:2024-11-18

Qt QChart绘制跟随鼠标的十字线

资源文件列表(大概)

文件名
大小
QChart_1_Demo/
-
QChart_1_Demo/main.cpp
183B
QChart_1_Demo/mainwindow.cpp
1008B
QChart_1_Demo/mainwindow.h
437B
QChart_1_Demo/mainwindow.ui
890B
QChart_1_Demo/QChart_1_Demo.pro
1.11KB
QChart_1_Demo/QChart_1_Demo.pro.user
24.37KB
QChart_1_Demo/zchart.cpp
3KB
QChart_1_Demo/zchart.h
1.14KB
QChart_1_Demo/zchartview.cpp
3.2KB
QChart_1_Demo/zchartview.h
870B

资源内容介绍

Qt QChart绘制跟随鼠标的十字线
#include "zchartview.h"ZChartView::ZChartView(ZChart *chart, QWidget *parent):QChartView (chart,parent){ connect(chart,&ZChart::showPointRectSign,this,&ZChartView::showPointRectSlots); setRubberBand(QChartView::RectangleRubberBand); //设置橡皮筋 setRenderHint(QPainter::Antialiasing); //设置平滑曲线 setStyleSheet("background:transparent"); QPen pen; // 定义一个画笔,设置画笔颜色和宽度 pen.setColor("red"); pen.setWidth(1); x_line = new QGraphicsLineItem(); // 定义一个直线图元 x_line->setLine(QLineF(10, 0, 10, this->height())); x_line->setPen(pen); x_line->setEnabled(false); x_line->setVisible(false); scene()->addItem(x_line); y_line = new QGraphicsLineItem(); // 定义一个直线图元 y_line->setLine(QLineF(10, 0, 10, this->height())); y_line->setPen(pen); y_line->setEnabled(false); y_line->setVisible(false); scene()->addItem(y_line); //添加文字背景框矩形 currentPointTextRect = new QGraphicsRectItem(0 , 0 ,100, 60); currentPointTextRect->setBrush(Qt::yellow); currentPointTextRect->setEnabled(false); currentPointTextRect->setVisible(false); scene()->addItem(currentPointTextRect); currentPointText=new QGraphicsTextItem(currentPointTextRect); currentPointText->setHtml(""); currentPointText->setEnabled(false); scene()->addItem(currentPointText);}ZChartView::~ZChartView(){ qDebug()<<" 调用了ZChartView的析构函数 ";}void ZChartView::mouseMoveEvent(QMouseEvent *e){ //打印鼠标位置处的点的坐标值 // qDebug()<<"鼠标移入点位"<<this->chart()->mapToValue(e->pos());//把鼠标坐标值转化为画出的图中的坐标 //以防父类的实例接收不到mouseMoveEvent事件。 QChartView::mouseMoveEvent(e);//调用父类的重写方法。本行程序不同于e->ignore(),ignor是把事件继续向父控件(一般其父控件就是ui界面)传递,而不是向父类传递 x_line->setLine(e->x(),0,e->x(),this->height()); y_line->setLine(0,e->y(),this->width(),e->y()); currentPointTextRect->setPos(e->pos()); currentPointText->setHtml("<p>&nbsp;"+QString::number(this->chart()->mapToValue(e->pos()).x())+"</p><p>&nbsp;"+QString::number(this->chart()->mapToValue(e->pos()).y())+"</p>"); currentPointTextRect->setPos(e->pos());}void ZChartView::enterEvent(QEvent *event){ x_line->setVisible(true); y_line->setVisible(true); currentPointTextRect->setVisible(true);}void ZChartView::leaveEvent(QEvent *event){ x_line->setVisible(false); y_line->setVisible(false); currentPointTextRect->setVisible(false);}void ZChartView::showPointRectSlots(QPointF point, bool state){// if(state)// {// currentPointTextRect->setVisible(true);// currentPointText->setHtml("<p>&nbsp;"+QString::number(point.x())+"</p><p>&nbsp;"+QString::number(point.y())+"</p>");// currentPointTextRect->setPos(this->chart()->mapToPosition(point));// }// else// {// currentPointTextRect->setVisible(false);// }}

用户评论 (0)

发表评论

captcha