准备下面几张背景图片:
调小图标

、调大图标

、QSlider位置图标

QSlider划过的背景图标

、QSlider未划过的背景图标

最终效果图

自己创建一个QSlider工程,此处省略……
编写mainwindow.h文件
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include
- #include
- #include
-
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- explicit MainWindow(QWidget *parent = 0);
- private slots:
- void BtnLeftClick();
- void BtnRightClick();
- private:
- QSlider *pQSlider;
- };
-
- #endif // MAINWINDOW_H
编写mainwindow.cpp文件
- #include "mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent)
- {
- this->resize(QSize(360,90));
- this->setStyleSheet("background-color:rgb(43,45,55);border:none;");
-
- QPushButton *pBtnL = new QPushButton(this);
- QPushButton *pBtnR = new QPushButton(this);
- pQSlider = new QSlider(Qt::Horizontal,this);
-
- pBtnL->setGeometry(30,24,32,34);
- pQSlider->setGeometry(70,20,220,40);
- pBtnR->setGeometry(300,20,32,34);
-
-
- pBtnL->setStyleSheet("outline:none;border-image: url(:/btn_del.png)");
- pBtnR->setStyleSheet("outline:none;border-image: url(:/btn_add.png)");
-
- //设置不可用,不可滑动
- pQSlider->setEnabled(false);
- pQSlider->setStyleSheet("QSlider::groove:horizontal{ \
- height: 12px; \
- left: 5px; \
- right: 5px; \
- border-image: url(:/qslider_bg.png);\
- } \
- QSlider::handle:horizontal{ \
- border-radius: 20px; \
- width: 40px; \
- height: 40px; \
- margin-top: -10px; \
- margin-left: -10px; \
- margin-bottom: -20px; \
- margin-right: -10px; \
- border-image:url(:/qslider_btn.png);} \
- QSlider::sub-page:horizontal{border-image: url(:/qslider.png);}");
-
-
- //设置最小值、最大值
- pQSlider->setMinimum(0);
- pQSlider->setMaximum(16);
-
- //设置初始值
- pQSlider->setValue(4);
-
- //关联信号槽
- connect(pBtnL,SIGNAL(clicked()),this,SLOT(BtnLeftClick()));
- connect(pBtnR,SIGNAL(clicked()),this,SLOT(BtnRightClick()));
- }
-
- void MainWindow::BtnLeftClick()
- {
- if(pQSlider->value() > 0)
- {
- pQSlider->setValue(pQSlider->value()-1);
- }
- }
-
- void MainWindow::BtnRightClick()
- {
- if(pQSlider->value() < 16)
- {
- pQSlider->setValue(pQSlider->value()+1);
- }
- }
编写main.cpp文件
- #include "mainwindow.h"
- #include
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
-
- return a.exec();
- }
es.qrc内容如下图所示

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓