LibreVNA/Software/PC_Application/CustomWidgets/siunitedit.h

37 lines
1.0 KiB
C
Raw Normal View History

#ifndef SIUNITEDIT_H
#define SIUNITEDIT_H
#include <QLineEdit>
class SIUnitEdit : public QLineEdit
{
Q_OBJECT
public:
SIUnitEdit(QString unit = QString(), QString prefixes = " ", int precision = 0, QWidget *parent = nullptr);
SIUnitEdit(QWidget *parent);
void setUnit(QString unit) { this->unit = unit; setValueQuiet(_value); }
void setPrefixes(QString prefixes) { this->prefixes = prefixes; setValueQuiet(_value); }
void setPrecision(int precision) { this->precision = precision; setValueQuiet(_value); }
double value() { return _value; }
public slots:
void setValue(double value);
void setValueQuiet(double value);
signals:
void valueChanged(double newvalue);
2020-10-20 23:03:49 +08:00
void valueUpdated(QWidget *w);
void editingAborted();
2020-11-15 07:21:09 +08:00
void focusLost();
protected:
bool eventFilter(QObject *obj, QEvent *event) override;
2020-11-23 19:43:24 +08:00
private slots:
void continueEditing();
private:
void parseNewValue(double factor);
QString unit, prefixes;
int precision;
double _value;
};
#endif // SIUNITEDIT_H