File: signalmeter.cpp

package info (click to toggle)
wsjtx 2.7.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 70,440 kB
  • sloc: cpp: 75,379; f90: 46,460; python: 27,241; ansic: 13,367; fortran: 2,382; makefile: 197; sh: 133
file content (53 lines) | stat: -rwxr-xr-x 1,046 bytes parent folder | download | duplicates (2)
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
// Simple bargraph dB meter
// Implemented by Edson Pereira PY2SDR
//
// Limits and geometry are hardcded for now.

#include "signalmeter.h"

SignalMeter::SignalMeter(QWidget *parent) :
    QWidget(parent)
{
    resize(parent->size());

    m_meter = new MeterWidget(this);
    m_meter->setGeometry(10, 10, 10, 120);

    m_label = new QLabel(this);
    m_label->setGeometry(10, 135, 20, 20);

    QLabel *dbLabel = new QLabel(this);
    dbLabel->setText("dB");
    dbLabel->setGeometry(30, 135, 20, 20);
}

SignalMeter::~SignalMeter()
{

}

void SignalMeter::paintEvent( QPaintEvent * )
{
  QPainter p {this};

    p.drawLine(22, 10, 22, 130);

    for ( int i = 0; i <= 60; i += 10 ) {
        p.drawLine(22, i*2 + 10, 25, i*2 + 10);
    }

    for ( int i = 10; i < 60; i += 10 ) {
        p.drawText(30, i*2 + 15, QString::number(60 - i));
    }
}

void SignalMeter::setValue(int value)
{
    m_meter->setValue(value);
    m_label->setText(QString::number(value));
}

void SignalMeter::resizeEvent(QResizeEvent *s)
{
    resize(s->size());
}