-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwinhum.cpp
More file actions
53 lines (46 loc) · 1.55 KB
/
mainwinhum.cpp
File metadata and controls
53 lines (46 loc) · 1.55 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
#include "mainwinhum.h"
#include "Sensor.h"
MainWinHum::MainWinHum(): graficow(new QChartView){
mainlayout->addWidget(graficow);
graficow->chart()->legend()->setVisible(false);
}
MainWinHum::~MainWinHum(){}//la distruzione dei puntatori viene fatta da Qt alla chiusura del widget
void MainWinHum::updateVal(const Sensor* sensore){
//TODO connettere al controller
data=sensore->getData();
if(!data.empty())doGraph();//evito errori in caso di mancanza di dati
}
void MainWinHum::doGraph(){
QChart* grafico=graficow->chart();
grafico->removeAllSeries();
for(auto ax:grafico->axes()) grafico->removeAxis(ax);
//Gestione degli assi
QValueAxis * assex = new QValueAxis;
assex->setTitleText("Indici simulazione");
assex->setTickCount(10);
assex->setRange(0,data.size()-1);
assex->setLabelFormat("%d");
QValueAxis * assey = new QValueAxis;
assey->setTitleText("Valori di umidità misurati");
{
double min=data.front(), max=data.front();
for(double d:data){
if(d<min) min=d;
if(d>max) max=d;
}
assey->setRange(min-1,max+1);
}
assey->setLabelFormat("%d");
grafico->addAxis(assex,Qt::AlignBottom);
grafico->addAxis(assey,Qt::AlignLeft);
//Gestione del grafico vero e proprio
QLineSeries * line=new QLineSeries;
for(unsigned int i=0;i<data.size();++i){
line->append(i,data[i]);
}
grafico->addSeries(line);
line->attachAxis(assex);
line->attachAxis(assey);
graficow->setChart(grafico);
graficow->update();
}