diff options
Diffstat (limited to 'demos/callout/view.cpp')
-rw-r--r-- | demos/callout/view.cpp | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/demos/callout/view.cpp b/demos/callout/view.cpp deleted file mode 100644 index a7c43863..00000000 --- a/demos/callout/view.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 Digia Plc - ** All rights reserved. - ** For any questions to Digia, please use contact form at http://qt.digia.com - ** - ** This file is part of the Qt Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise License Agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and Digia. - ** - ** If you have questions regarding the use of this file, please use - ** contact form at http://qt.digia.com - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - -#include "view.h" -#include <QResizeEvent> -#include <QGraphicsScene> -#include <QChart> -#include <QLineSeries> -#include <QSplineSeries> -#include <QGraphicsTextItem> -#include "callout.h" -#include <QMouseEvent> - -View::View(QWidget *parent) - : QGraphicsView(new QGraphicsScene, parent), - m_coordX(0), - m_coordY(0), - m_chart(0), - m_tooltip(0) -{ - setDragMode(QGraphicsView::NoDrag); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - // chart - m_chart = new QChart; - m_chart->setMinimumSize(640, 480); - m_chart->setTitle("Hover the line to show callout. Click the line to make it stay"); - m_chart->legend()->hide(); - QLineSeries *series = new QLineSeries; - series->append(1, 3); - series->append(4, 5); - series->append(5, 4.5); - series->append(7, 1); - series->append(11, 2); - m_chart->addSeries(series); - - QSplineSeries *series2 = new QSplineSeries; - series2->append(1.6, 1.4); - series2->append(2.4, 3.5); - series2->append(3.7, 2.5); - series2->append(7, 4); - series2->append(10, 2); - m_chart->addSeries(series2); - - m_chart->createDefaultAxes(); - m_chart->setAcceptHoverEvents(true); - - setRenderHint(QPainter::Antialiasing); - scene()->addItem(m_chart); - - m_coordX = new QGraphicsSimpleTextItem(m_chart); - m_coordX->setPos(m_chart->size().width()/2 - 50, m_chart->size().height()); - m_coordX->setText("X: "); - m_coordY = new QGraphicsSimpleTextItem(m_chart); - m_coordY->setPos(m_chart->size().width()/2 + 50, m_chart->size().height()); - m_coordY->setText("Y: "); - - connect(series, SIGNAL(clicked(QPointF)), this, SLOT(keepCallout())); - connect(series, SIGNAL(hovered(QPointF, bool)), this, SLOT(tooltip(QPointF,bool))); - - connect(series2, SIGNAL(clicked(QPointF)), this, SLOT(keepCallout())); - connect(series2, SIGNAL(hovered(QPointF, bool)), this, SLOT(tooltip(QPointF,bool))); - - this->setMouseTracking(true); -} - -void View::resizeEvent(QResizeEvent *event) -{ - if (scene()) { - scene()->setSceneRect(QRect(QPoint(0, 0), event->size())); - m_chart->resize(event->size()); - m_coordX->setPos(m_chart->size().width()/2 - 50, m_chart->size().height() - 20); - m_coordY->setPos(m_chart->size().width()/2 + 50, m_chart->size().height() - 20); - } - QGraphicsView::resizeEvent(event); -} - -void View::mouseMoveEvent(QMouseEvent *event) -{ - m_coordX->setText(QString("X: %1").arg(m_chart->mapToValue(event->pos()).x())); - m_coordY->setText(QString("Y: %1").arg(m_chart->mapToValue(event->pos()).y())); - QGraphicsView::mouseMoveEvent(event); -} - -void View::keepCallout() -{ - m_tooltip = new Callout(m_chart); -} - -void View::tooltip(QPointF point, bool state) -{ - if (m_tooltip == 0) - m_tooltip = new Callout(m_chart); - - if (state) { - m_tooltip->setText(QString("X: %1 \nY: %2 ").arg(point.x()).arg(point.y())); - QXYSeries *series = qobject_cast<QXYSeries *>(sender()); - m_tooltip->setAnchor(m_chart->mapToPosition(point, series)); - m_tooltip->setPos(m_chart->mapToPosition(point, series) + QPoint(10, -50)); - m_tooltip->setZValue(11); - m_tooltip->show(); - } else { - m_tooltip->hide(); - } -} |