• Qt QSS QSlider样式


    本文章主要学习QSlider样式

    准备下面几张背景图片:

    调小图标

    、调大图标

    ​、QSlider位置图标

    ​QSlider划过的背景图标

    ​、QSlider未划过的背景图标

    ​最终效果图

    自己创建一个QSlider工程,此处省略……

    CSDN QT大纲:Qt开发必备技术栈学习路线和资料

    编写mainwindow.h文件

    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. #include
    5. #include
    6. class MainWindow : public QMainWindow
    7. {
    8. Q_OBJECT
    9. public:
    10. explicit MainWindow(QWidget *parent = 0);
    11. private slots:
    12. void BtnLeftClick();
    13. void BtnRightClick();
    14. private:
    15. QSlider *pQSlider;
    16. };
    17. #endif // MAINWINDOW_H

    编写mainwindow.cpp文件

    1. #include "mainwindow.h"
    2. MainWindow::MainWindow(QWidget *parent) :
    3. QMainWindow(parent)
    4. {
    5. this->resize(QSize(360,90));
    6. this->setStyleSheet("background-color:rgb(43,45,55);border:none;");
    7. QPushButton *pBtnL = new QPushButton(this);
    8. QPushButton *pBtnR = new QPushButton(this);
    9. pQSlider = new QSlider(Qt::Horizontal,this);
    10. pBtnL->setGeometry(30,24,32,34);
    11. pQSlider->setGeometry(70,20,220,40);
    12. pBtnR->setGeometry(300,20,32,34);
    13. pBtnL->setStyleSheet("outline:none;border-image: url(:/btn_del.png)");
    14. pBtnR->setStyleSheet("outline:none;border-image: url(:/btn_add.png)");
    15. //设置不可用,不可滑动
    16. pQSlider->setEnabled(false);
    17. pQSlider->setStyleSheet("QSlider::groove:horizontal{ \
    18. height: 12px; \
    19. left: 5px; \
    20. right: 5px; \
    21. border-image: url(:/qslider_bg.png);\
    22. } \
    23. QSlider::handle:horizontal{ \
    24. border-radius: 20px; \
    25. width: 40px; \
    26. height: 40px; \
    27. margin-top: -10px; \
    28. margin-left: -10px; \
    29. margin-bottom: -20px; \
    30. margin-right: -10px; \
    31. border-image:url(:/qslider_btn.png);} \
    32. QSlider::sub-page:horizontal{border-image: url(:/qslider.png);}");
    33. //设置最小值、最大值
    34. pQSlider->setMinimum(0);
    35. pQSlider->setMaximum(16);
    36. //设置初始值
    37. pQSlider->setValue(4);
    38. //关联信号槽
    39. connect(pBtnL,SIGNAL(clicked()),this,SLOT(BtnLeftClick()));
    40. connect(pBtnR,SIGNAL(clicked()),this,SLOT(BtnRightClick()));
    41. }
    42. void MainWindow::BtnLeftClick()
    43. {
    44. if(pQSlider->value() > 0)
    45. {
    46. pQSlider->setValue(pQSlider->value()-1);
    47. }
    48. }
    49. void MainWindow::BtnRightClick()
    50. {
    51. if(pQSlider->value() < 16)
    52. {
    53. pQSlider->setValue(pQSlider->value()+1);
    54. }
    55. }

    编写main.cpp文件

    1. #include "mainwindow.h"
    2. #include
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication a(argc, argv);
    6. MainWindow w;
    7. w.show();
    8. return a.exec();
    9. }

    es.qrc内容如下图所示

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


  • 相关阅读:
    HTTP的详细介绍
    打破数据孤岛!时序数据库 TDengine 与创意物联感知平台完成兼容性互认
    网课题库接口如何快速搭建到公众号
    torch.utils.data.DataLoader
    动态IP代理是什么?一文看懂动态代理IP
    项目范围管理
    Jenkins的一些其他操作
    提高数据科学效率的 8 个Python神库
    Springboot+JasperReport报表打印
    【题解】[NOIP2015]扫雷游戏(Java & C++)
  • 原文地址:https://blog.csdn.net/m0_73443478/article/details/127984015