有没有办法防止Qt滑块拖动超过某个值?

有没有办法防止Qt滑块拖动超过某个值?,qt,qslider,Qt,Qslider,我已经实现了一个界面,用户正在绘制一帧,然后移动到下一帧,这将使滑块值增加1。用户还可以增加或减少滑块值。但,若用户只绘制到第20帧,那个么用户就不能将滑块拖动到第20帧之外。如何确保?使用该类,只需设置setRestrictValue()这是用户可以拖动滑块的最小值 slider.h #ifndef SLIDER_H #define SLIDER_H #include <QSlider> class Slider : public QSlider { Q_OBJECT

我已经实现了一个界面,用户正在绘制一帧,然后移动到下一帧,这将使滑块值增加1。用户还可以增加或减少滑块值。但,若用户只绘制到第20帧,那个么用户就不能将滑块拖动到第20帧之外。如何确保?

使用该类,只需设置
setRestrictValue()
这是用户可以拖动滑块的最小值

slider.h

#ifndef SLIDER_H
#define SLIDER_H

#include <QSlider>


class Slider : public QSlider
{
    Q_OBJECT
public:
    Slider(QWidget * parent = 0);
    ~Slider();

    void setRestrictValue(int value);

private slots:
    void restrictMove(int index);

private:
    int m_restrictValue;
};

#endif // SLIDER_H

我不确定我是否正确理解了这个问题,但有什么问题吗?使用setMaximum id进行尝试,需要更改该值以脱离您的预期
#include "slider.h"

Slider::Slider(QWidget *parent) : QSlider(parent)
{
    connect(this,SIGNAL(valueChanged(int)),this,SLOT(restrictMove(int)));

    m_restrictValue = 0;
}

Slider::~Slider()
{

}

void Slider::setRestrictValue(int value)
{
    m_restrictValue = value;
}


void Slider::restrictMove(int index)
{
    if(index < m_restrictValue)
    {
        this->setSliderPosition(m_restrictValue);
    }
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->slider1->setRange(0,100); //slider range
    ui->slider1->setValue(50); //slider current value
    ui->slider1->setRestrictValue(22); //the minimum value that user can drag the slider

    ui->slider2->setRange(0,100);//slider range
    ui->slider2->setValue(50); //slider current value
    ui->slider2->setRestrictValue(11);//the minimum value that user can drag the slider
}