-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainWindowGraph.cpp
More file actions
70 lines (54 loc) · 1.72 KB
/
Copy pathMainWindowGraph.cpp
File metadata and controls
70 lines (54 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <QDockWidget>
#include <QtCharts/QLineSeries>
#include <QtCore/QDateTime>
#include <QtCharts/QDateTimeAxis>
#include <QtCharts/QValueAxis>
#include "MainWindow.h"
#include "ui_MainWindow.h"
void MainWindow::createGraphWindows()
{
QDockWidget *dock = new QDockWidget(tr("Graph"), this);
dock->setAllowedAreas(Qt::BottomDockWidgetArea);
QLineSeries *series = new QLineSeries();
chart = new QChart();
chart->addSeries(series);
chart->legend()->hide();
chart->setTitle("Meassurement Data");
QValueAxis *axisX = new QValueAxis;
axisX->setLabelFormat("%i");
axisX->setTitleText("Samples");
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
QValueAxis *axisY = new QValueAxis;
axisY->setLabelFormat("%i");
axisY->setTitleText("Value [dec]");
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
dock->setWidget(chartView);
dock->resize(600,300);
addDockWidget(Qt::BottomDockWidgetArea, dock);
ui->menuTools->addAction(dock->toggleViewAction());
//resize Qt buck
dock->setFloating(true);
dock->hide();
dock->setFloating(false);
}
void MainWindow::chartGraphData(QVector<uint16_t> data)
{
chart->removeAllSeries();
QLineSeries *series = new QLineSeries();
uint16_t min = 0xffff;
uint16_t max = 0;
for(int i = 0; i< data.size(); i++)
{
uint16_t val = data.at(i);
if(val<min) min = val;
if(val>max) max = val;
series->append(i, val);
}
chart->addSeries(series);
chart->axisX()->setRange(0,series->count());
chart->axisY()->setRange(min, max);
}