widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QLineEdit> //行编辑器
#include <QSlider> //滑动条
#include <QScrollBar> //滚动条
#include <QProgressBar> //进度条
#include <QTimer> //定时器class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private:QLineEdit *le; //行编辑器QSlider *slider; //滑动条QScrollBar *scrBar; //滚动条QProgressBar *prgBar; //进度条QTimer *timer; //定时器};#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include <QVBoxLayout> //垂直布局管理器Widget::Widget(QWidget *parent): QWidget(parent)
{setWindowTitle("Slider");setFixedSize(360,280); //设置窗口大小le = new QLineEdit(this); //创建行编辑器le->setReadOnly(true); //设置只读slider = new QSlider(this); //创建滑动条slider->setValue(32); //设置值slider->setRange(0,100); //设置范围slider->setOrientation(Qt::Horizontal); //设置方向(水平放置)//slider->setOrientation(Qt::Vertical); //设置方向(垂直放置)scrBar = new QScrollBar(this); //创建滚动条scrBar->setValue(12); //设置值scrBar->setRange(0,100); //设置范围scrBar->setOrientation(Qt::Horizontal); //设置方向(水平放置)prgBar = new QProgressBar(this); //创建进度条prgBar->setValue(50); //设置值prgBar->setRange(0,100); //设置范围QVBoxLayout *vb = new QVBoxLayout(); //创建垂直布局管理器vb->addWidget(le);vb->addWidget(slider);vb->addWidget(scrBar);vb->addWidget(prgBar);setLayout(vb); //设置整个布局timer = new QTimer(this); //创建定时器timer->start(1000); //启动定时器,1秒执行一次connect(timer,&QTimer::timeout,[=](){ //[=]:捕获参数,():参数int tmp = slider->value(); //获取滑动条当前值tmp += 5;slider->setValue(tmp); //重新赋值if(tmp >= 100) //设置循环{slider->setValue(0);}});connect(slider,&QSlider::valueChanged,[=](int value){ //滑动条值改变执行函数prgBar->setValue(value); //改变进度条值scrBar->setValue(value); //改变滚动条值le->setText(QString::number(value)); //设置行编辑器值});
}Widget::~Widget()
{}
main.cpp
#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
结果