ifw-fcf  5.0.0-pre2
qeanalogsensor.hpp
Go to the documentation of this file.
1 #ifndef QEANALOGSENSOR_H
2 #define QEANALOGSENSOR_H
3 
4 #include <QObject>
5 #include <QWidget>
6 #include <QLabel>
7 #include <QTimer>
8 
9 class QeAnalogSensor : public QWidget
10 {
11  Q_OBJECT
12 
13  Q_PROPERTY(bool vertical MEMBER m_vertical WRITE set_vertical)
14  Q_PROPERTY(bool other_side MEMBER m_other_side WRITE set_other_side)
15  Q_PROPERTY(bool flashing MEMBER m_flashing WRITE set_flashing)
16  Q_PROPERTY(QColor flash_color MEMBER m_flash_color WRITE set_flash_color)
17  Q_PROPERTY(int font_size MEMBER m_font_size WRITE set_font_size)
18  Q_PROPERTY(double value MEMBER m_value WRITE set_value)
19  Q_PROPERTY(uint precision MEMBER m_precision WRITE set_precision)
20  Q_PROPERTY(bool exponential MEMBER m_exponential WRITE set_exponential)
21  Q_PROPERTY(QString unit MEMBER m_unit WRITE set_unit)
22  Q_PROPERTY(int number_align MEMBER m_number_align WRITE set_number_align)
23 
24 public:
25  explicit QeAnalogSensor(QWidget *parent = nullptr);
26 
27 signals:
28 
29 public slots:
30  void set_vertical( bool arg ){ m_vertical = arg; update(); }
31  void set_other_side( bool arg ){ m_other_side = arg; update(); }
32  void set_flashing( bool arg ){ m_flashing = arg; arg ? timer->start(1000): timer->stop(); update(); }
33  void set_flash_color( QColor arg ){ m_flash_color = arg; update(); }
34  void set_font_size( int arg );
35  void set_value( double arg ){ m_value = arg; update(); }
36  void set_precision( int arg ){ m_precision = arg; update(); }
37  void set_exponential( bool arg ){ m_exponential = arg; update(); }
38  void set_unit( QString arg ){ m_unit = arg; update(); }
39  void set_number_align(int arg ){ m_number_align = arg; update(); }
40 
41 protected:
42  QSize sizeHint();
43  QSize minimumSizeHint();
44  void paintEvent(QPaintEvent *event);
45  void setAdditionalHPadding(int value);
46 
47 private:
48  QString prepareText();
49 
50  bool m_vertical = false;
51  bool m_other_side = false;
52  bool m_flashing = false;
53  QColor m_flash_color;
54  QTimer *timer;
55  double m_value = 12345.56789;
56  int m_precision = 3;
57  int m_font_size;
58  bool m_exponential = false;
59  QString m_unit = "K";
60  int m_number_align = Qt::AlignLeft;
61  QColor m_bg_color;
62  int m_additional_h_padding = 0;
63 
64  void prepareSizes();
65 };
66 
67 #endif // QEANALOGSENSOR_H
Definition: qeanalogsensor.hpp:10
void set_precision(int arg)
Definition: qeanalogsensor.hpp:36
void set_exponential(bool arg)
Definition: qeanalogsensor.hpp:37
bool exponential
Definition: qeanalogsensor.hpp:20
bool other_side
Definition: qeanalogsensor.hpp:14
QeAnalogSensor(QWidget *parent=nullptr)
Definition: qeanalogsensor.cpp:21
bool flashing
Definition: qeanalogsensor.hpp:15
void set_number_align(int arg)
Definition: qeanalogsensor.hpp:39
void set_flash_color(QColor arg)
Definition: qeanalogsensor.hpp:33
void set_font_size(int arg)
Definition: qeanalogsensor.cpp:36
QString unit
Definition: qeanalogsensor.hpp:21
void set_vertical(bool arg)
Definition: qeanalogsensor.hpp:30
bool vertical
Definition: qeanalogsensor.hpp:13
QSize minimumSizeHint()
Definition: qeanalogsensor.cpp:153
void set_value(double arg)
Definition: qeanalogsensor.hpp:35
void setAdditionalHPadding(int value)
Definition: qeanalogsensor.cpp:195
void set_flashing(bool arg)
Definition: qeanalogsensor.hpp:32
void set_unit(QString arg)
Definition: qeanalogsensor.hpp:38
QColor flash_color
Definition: qeanalogsensor.hpp:16
double value
Definition: qeanalogsensor.hpp:18
void set_other_side(bool arg)
Definition: qeanalogsensor.hpp:31
uint precision
Definition: qeanalogsensor.hpp:19
int number_align
Definition: qeanalogsensor.hpp:22
QSize sizeHint()
Definition: qeanalogsensor.cpp:168
int font_size
Definition: qeanalogsensor.hpp:17
void paintEvent(QPaintEvent *event)
Definition: qeanalogsensor.cpp:45