2026-04-02 10:34:57 +08:00
|
|
|
|
#include "stdafx.h"
|
2023-03-14 22:52:38 +08:00
|
|
|
|
#include "qDoubleSlider.h"
|
|
|
|
|
|
QDoubleSlider::QDoubleSlider(QWidget* pParent /*= NULL*/) :
|
|
|
|
|
|
QSlider(pParent),
|
2026-03-20 15:33:25 +08:00
|
|
|
|
m_Multiplier(100.0)
|
2023-03-14 22:52:38 +08:00
|
|
|
|
{
|
|
|
|
|
|
connect(this, SIGNAL(valueChanged(int)), this, SLOT(notifyValueChanged(int)));
|
|
|
|
|
|
|
2026-04-16 15:57:28 +08:00
|
|
|
|
setSingleStep(0);
|
|
|
|
|
|
setPageStep(0);
|
2026-03-24 14:54:48 +08:00
|
|
|
|
setRange(1, 500);
|
2023-03-14 22:52:38 +08:00
|
|
|
|
|
|
|
|
|
|
setOrientation(Qt::Horizontal);
|
|
|
|
|
|
setFocusPolicy(Qt::NoFocus);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
//向外发射
|
2023-03-14 22:52:38 +08:00
|
|
|
|
void QDoubleSlider::notifyValueChanged(int Value)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit valueChanged((double)Value / m_Multiplier);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-02 10:34:57 +08:00
|
|
|
|
//接收外边
|
2023-03-14 22:52:38 +08:00
|
|
|
|
void QDoubleSlider::setValue(double Value, bool BlockSignals)
|
|
|
|
|
|
{
|
|
|
|
|
|
QSlider::blockSignals(BlockSignals);
|
|
|
|
|
|
|
|
|
|
|
|
QSlider::setValue(Value * m_Multiplier);
|
|
|
|
|
|
|
|
|
|
|
|
if (!BlockSignals)
|
|
|
|
|
|
emit valueChanged(Value);
|
|
|
|
|
|
|
|
|
|
|
|
QSlider::blockSignals(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void QDoubleSlider::setRange(double Min, double Max)
|
|
|
|
|
|
{
|
|
|
|
|
|
QSlider::setRange(Min * m_Multiplier, Max * m_Multiplier);
|
|
|
|
|
|
|
|
|
|
|
|
emit rangeChanged(Min, Max);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void QDoubleSlider::setMinimum(double Min)
|
|
|
|
|
|
{
|
|
|
|
|
|
QSlider::setMinimum(Min * m_Multiplier);
|
|
|
|
|
|
|
|
|
|
|
|
emit rangeChanged(minimum(), maximum());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
double QDoubleSlider::minimum() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return QSlider::minimum() / m_Multiplier;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void QDoubleSlider::setMaximum(double Max)
|
|
|
|
|
|
{
|
|
|
|
|
|
QSlider::setMaximum(Max * m_Multiplier);
|
|
|
|
|
|
|
|
|
|
|
|
emit rangeChanged(minimum(), maximum());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
double QDoubleSlider::maximum() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return QSlider::maximum() / m_Multiplier;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
double QDoubleSlider::value() const
|
|
|
|
|
|
{
|
|
|
|
|
|
int Value = QSlider::value();
|
|
|
|
|
|
return (double)Value / m_Multiplier;
|
|
|
|
|
|
}
|