提交 17adf8f3 编写于 作者: J jp9000

UI: Add floating point slider control

上级 dac3fd88
......@@ -104,6 +104,7 @@ set(obs_SOURCES
window-log-reply.cpp
window-remux.cpp
properties-view.cpp
double-slider.cpp
volume-control.cpp
adv-audio-control.cpp
vertical-scroll-area.cpp
......@@ -131,6 +132,7 @@ set(obs_HEADERS
window-remux.hpp
properties-view.hpp
display-helpers.hpp
double-slider.hpp
volume-control.hpp
adv-audio-control.hpp
vertical-scroll-area.hpp
......
#include "double-slider.hpp"
DoubleSlider::DoubleSlider(QWidget *parent) : QSlider(parent)
{
connect(this, SIGNAL(valueChanged(int)),
this, SLOT(intValChanged(int)));
}
void DoubleSlider::setDoubleConstraints(double newMin, double newMax,
double newStep, double val)
{
minVal = newMin;
maxVal = newMax;
minStep = newStep;
double total = maxVal - minVal;
int intMax = int(total / minStep);
setMinimum(0);
setMaximum(intMax);
setSingleStep(1);
setDoubleVal(val);
}
void DoubleSlider::intValChanged(int val)
{
emit doubleValChanged(double(val) * minStep + minVal);
}
void DoubleSlider::setDoubleVal(double val)
{
setValue(int((val - minVal) / minStep));
}
#include <QSlider>
class DoubleSlider : public QSlider {
Q_OBJECT
double minVal, maxVal, minStep;
public:
DoubleSlider(QWidget *parent = nullptr);
void setDoubleConstraints(double newMin, double newMax,
double newStep, double val);
signals:
void doubleValChanged(double val);
public slots:
void intValChanged(int val);
void setDoubleVal(double val);
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册