File indexing completed on 2024-05-12 17:12:39
0001 #include <QDebug> 0002 0003 #include "realslider.h" 0004 0005 RealSlider::RealSlider(QWidget* parent) : QSlider(parent), m_start(0.0), m_end(1.0), m_step(0.01) 0006 { 0007 updateRange(); 0008 connect(this, &RealSlider::sliderMoved, this, &RealSlider::internalValueChanged); 0009 } 0010 0011 qreal RealSlider::start() const 0012 { 0013 return m_start; 0014 } 0015 0016 void RealSlider::setStart(const qreal& start) 0017 { 0018 m_start= start; 0019 updateRange(); 0020 } 0021 0022 qreal RealSlider::end() const 0023 { 0024 return m_end; 0025 } 0026 0027 void RealSlider::setEnd(const qreal& end) 0028 { 0029 m_end= end; 0030 updateRange(); 0031 } 0032 0033 qreal RealSlider::step() const 0034 { 0035 return m_step; 0036 } 0037 0038 void RealSlider::setStep(const qreal& step) 0039 { 0040 m_step= step; 0041 updateRange(); 0042 } 0043 0044 void RealSlider::updateRange() 0045 { 0046 qreal val= m_end - m_start; 0047 qreal num= val / m_step; 0048 0049 setMaximum(num); 0050 setMinimum(0); 0051 setSingleStep(1); 0052 } 0053 0054 void RealSlider::setRealValue(qreal v) 0055 { 0056 setValue(v * maximum()); 0057 } 0058 0059 void RealSlider::internalValueChanged(int x) 0060 { 0061 if(0 != maximum()) 0062 { 0063 qreal y= static_cast<qreal>(x) / static_cast<qreal>(maximum()); 0064 emit valueChanged(y); 0065 } 0066 }