DiffHistoGraph.cpp
1.18 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
#include <QPainter>
#include <opencv2/imgproc/imgproc.hpp>
#include "DiffHistoGraph.h"
DiffHistoGraph::DiffHistoGraph(QColor color, bool minusY, int scale, int width, int height, QWidget *parent)
: QWidget(parent),
m_minusY(minusY),
m_color(color)
{
setFixedSize(width, height);
m_scale = scale / 8.0;
if (minusY)
m_height = height / 2;
else
m_height = 0;
}
///////////
// slots //
///////////
void DiffHistoGraph::setScale(int scale)
{
m_scale = scale / 8.0;
}
void DiffHistoGraph::appendDist(qreal dist)
{
m_distList.append(dist);
if (m_distList.size() > width())
m_distList.removeFirst();
update();
}
void DiffHistoGraph::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
// fill monitors background and set pen
painter.fillRect(0, 0, width(), height(), QBrush(Qt::white));
if (m_minusY) {
painter.setPen(Qt::gray);
painter.drawLine(0, m_height, width(), m_height);
}
int listSize = m_distList.size();
painter.setPen(m_color);
for (int i = 1; i < listSize; i++)
painter.drawLine(i-1, height() * (1 - m_scale * m_distList[i-1]) - m_height, i, height() * (1 - m_scale * m_distList[i]) - m_height);
}