程序员开发实例大全宝库

网站首页 > 编程文章 正文

Qt QSS QSlider样式(qss教程)

zazugpt 2024-08-12 03:05:51 编程文章 24 ℃ 0 评论

本文章主要学习QSlider样式

准备下面几张背景图片:

调小图标

、调大图标

、QSlider位置图标

QSlider划过的背景图标

、QSlider未划过的背景图标

最终效果图

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

【领QT开发教程学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→领取「链接」

编写mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSlider>
#include <QPushButton>


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);
    }
}

【领QT开发教程学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→领取「链接」

编写main.cpp文件

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

es.qrc内容如下图所示

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表