widget.h
cpp
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLineEdit> //行编辑器
#include <QSlider> //滑动条
#include <QScrollBar> //滚动条
#include <QProgressBar> //进度条
#include <QTimer> //定时器
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private:
QLineEdit *le; //行编辑器
QSlider *slider; //滑动条
QScrollBar *scrBar; //滚动条
QProgressBar *prgBar; //进度条
QTimer *timer; //定时器
};
#endif // WIDGET_H
widget.cpp
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
cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
结果