LibreVNA/Software/PC_Application/valueinput.h
2020-08-30 22:03:41 +02:00

45 lines
935 B
C++

#ifndef VALUEINPUT_H
#define VALUEINPUT_H
#include <QWidget>
#include <vector>
#include <QPushButton>
#include <QLabel>
#include <QSignalMapper>
class ValueInput : public QWidget
{
Q_OBJECT
public:
class Unit {
public:
Unit(){};
Unit(QString name, double factor):
name(name), factor(factor){};
QString name;
double factor;
};
ValueInput(std::vector<Unit> units, QString name = "Value input", QString initialValue = QString());
signals:
void ValueChanged(double value);
protected:
void keyPressEvent(QKeyEvent *event) override;
private slots:
void AddToInput(QString a);
void ChangeSign();
void Backspace();
void Abort();
void UnitPressed(double factor);
private:
static constexpr QSize minButtonSize = QSize(50, 50);
QString input;
QLabel *label;
QPushButton *bDot;
std::vector<Unit> units;
};
#endif // VALUEINPUT_H