话不多说,上干货
视频链接:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTimer>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void slotSpin();
void slotAllSpin();
void slotAllSpin2();
void slotBtnSpin();
private:
Ui::Widget *ui;
QTimer* timer1;
QTimer* timer2;
QTimer* timer3;
double dX;
int count;
int n;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QSlider>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// double dY = ui->doubleSpinBox_2->value();
ui->horizontalSlider->setRange(0,100);
ui->horizontalSlider->setValue(0);
ui->horizontalSlider_2->setRange(0,100);
ui->horizontalSlider_2->setValue(0);
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(slotBtnSpin()));
timer1 = new QTimer(this);
connect(timer1,SIGNAL(timeout()),this,SLOT(slotSpin()));
timer2 = new QTimer(this);
connect(timer2,SIGNAL(timeout()),this,SLOT(slotAllSpin()));
timer2->start(100);
timer3 = new QTimer(this);
connect(timer3,SIGNAL(timeout()),this,SLOT(slotAllSpin2()));
count = 0;
n=0;
}
void Widget::slotBtnSpin()
{
timer1->start(1000);
}
void Widget::slotSpin()
{
dX = ui->doubleSpinBox->value()/1;
if(n<dX)
{
n++;
ui->horizontalSlider->setValue(n);
}
else if(n>dX)
{
n--;
ui->horizontalSlider->setValue(n);
}
else
{
timer1->stop();
}
}
void Widget::slotAllSpin()
{
if(count<100&& count>=0)
{
count++;
ui->horizontalSlider_2->setValue(count);
ui->doubleSpinBox_2->setValue(count);
}
else if(count==100)
{
timer2->stop();
timer3->start(100);
}
}
void Widget::slotAllSpin2()
{
count--;
ui->horizontalSlider_2->setValue(count);
ui->doubleSpinBox_2->setValue(count);
if(count==0)
{
timer3->stop();
timer2->start(100);
}
}
Widget::~Widget()
{
delete ui;
}