0
我已經實現了用戶正在繪製一個框架的界面,然後移動到下一個框架,這將增加滑塊值1.用戶還可以增加或減少滑塊值。但是,如果用戶只繪製了第20幀,那麼用戶不應該能夠將滑塊拖到20以上。我怎樣才能確保?有沒有辦法阻止Qt滑塊超過一個值?
我已經實現了用戶正在繪製一個框架的界面,然後移動到下一個框架,這將增加滑塊值1.用戶還可以增加或減少滑塊值。但是,如果用戶只繪製了第20幀,那麼用戶不應該能夠將滑塊拖到20以上。我怎樣才能確保?有沒有辦法阻止Qt滑塊超過一個值?
使用這個類和剛剛成立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
slider.cpp
#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
}
不是e我正確理解問題,但[setMaximum(int)'](http://doc.qt.io/qt-5/qabstractslider.html#maximum-prop)有什麼問題? – Bowdzone