ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
displaywindow.h
Go to the documentation of this file.
1
27
28#ifndef DISPLAY_WINDOW_H
29#define DISPLAY_WINDOW_H
30
31#include <QGraphicsScene>
32#include <QGraphicsView>
33#include <QLabel>
34#include <QLayout>
35#include <QPainter>
36#include <QRect>
37#include <QWidget>
38#include <QMutex>
39
40#include <cstdint>
41
42#include "framestatistics.hpp"
43
44class DisplayWindow;
45
46
47class CustomGraphicsScene : public QGraphicsScene
48{
49 Q_OBJECT
50
51public:
52 explicit CustomGraphicsScene(DisplayWindow* pParent=nullptr);
53 ~CustomGraphicsScene() override = default;
54
55 void setImage(QImage image);
56
57private:
58 QImage m_image{};
59 QMutex m_mutex{};
60
61 void drawBackground(QPainter* painter, const QRectF& rect) override;
62};
63
64
65class DisplayWindow : public QWidget
66{
67 Q_OBJECT
68
69public:
70 DisplayWindow(QPoint pos, int desiredHeight, QSize imageSize, QWidget* parent=nullptr);
71 ~DisplayWindow() override = default;
72
73public slots:
74 void UpdateDisplay(QImage image);
75 void UpdateCounters(const FrameStatistics& statistics);
76
77private:
78 static double AverageValue(double val1, double val2, double deviation);
79
80 QLabel* m_labelInfos{};
81 QVBoxLayout* m_layout{};
82
83 QGraphicsView* m_graphicsView{};
85
86 double m_frameRate{};
88};
89
90#endif // DISPLAY_WINDOW_H
Definition display.h:45
QImage m_image
Definition display.h:57
void setImage(QImage image)
void drawBackground(QPainter *painter, const QRectF &rect) override
CustomGraphicsScene(CustomDisplay *pParent)
Definition display.cpp:120
~CustomGraphicsScene() override=default
QMutex m_mutex
Definition display.h:52
Definition displaywindow.h:66
QVBoxLayout * m_layout
Definition displaywindow.h:81
QLabel * m_labelInfos
Definition displaywindow.h:80
CustomGraphicsScene * m_scene
Definition displaywindow.h:84
void UpdateDisplay(QImage image)
Definition displaywindow.cpp:65
DisplayWindow(QPoint pos, int desiredHeight, QSize imageSize, QWidget *parent=nullptr)
Definition displaywindow.cpp:37
double m_frameRate
Definition displaywindow.h:86
void UpdateCounters(const FrameStatistics &statistics)
Definition displaywindow.cpp:77
double m_conversionTime_ms
Definition displaywindow.h:87
~DisplayWindow() override=default
QGraphicsView * m_graphicsView
Definition displaywindow.h:83
static double AverageValue(double val1, double val2, double deviation)
Definition displaywindow.cpp:103
Frame statistic data type.
Definition framestatistics.hpp:32