mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05:00 
			
		
		
		
	
		
			
	
	
		
			54 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// 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;
							 | 
						||
| 
								 | 
							
								    p.begin(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());
							 | 
						||
| 
								 | 
							
								}
							 |