QSlider风格设置

news2024/11/25 21:18:25

QT的滑动条在开发的过程中经常使用,默认的QSlider风格比较简陋,一般达不到UI设计的效果,本篇记录一个QSlider使用过程中风格的设置。

1.qss常用的字段属性

1.1背景属性

属性意思
background Background背景属性
background-colorBrush背景颜色
background-imageUrl背景图
background-repeatRepeat是否重绘
background-positionAlignment背景位置
background-attachmentAttachment确定背景图像是相对于窗口滚动还是固定。
background-clipOrigin绘制区域可裁剪
background-originOrigin背景位置和背景图像一起使用

2.边框属性boder

属性意思
borderBorder边框属性
border-topBorder顶部边框属性
border-rightBorder右边边框属性
border-bottomBorder底部边框属性
border-leftBorder左边边框属性
border-colorBox Colors边框颜色
border-top-colorBrush顶部边框颜色
border-right-colorBrush右边边框颜色
border-bottom-colorBrush底部边框颜色
border-left-colorBrush左边边框颜色
border-imageBorder Image边框背景图
border-radiusRadius边框圆角弧度

3.外边距属性margin

属性意思
margin Box Lengths外边距属性
margin-topLength顶部外边距属性
margin-rightLength右边外边距属性
margin-bottomLength底部外边距属性
margin-leftLength左边外边距属性

4.内边距属性padding

代码实现

#include "qsliderdemo.h"
#include "ui_qsliderdemo.h"

QSliderDemo::QSliderDemo(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::QSliderDemo)
{
    ui->setupUi(this);
    initView();
}

QSliderDemo::~QSliderDemo()
{
    delete ui;
}


void QSliderDemo::initView()
{
    // 水平QSlider  滑动块前面的区域风格  滑动块后面的区域风格  滑块风格 margin: 20px 0;
    QString horizontalStyle = QString(
                "QSlider::groove:horizontal{border: 0px solid #ff0000;height:4px;}"
                "QSlider::sub-page:horizontal{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:horizontal{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:horizontal{background:#FFFFFF;border: 1px solid #666666;border-radius:8px;width:18px;height:18px;margin-top:-6px;margin-bottom: -6px;}"
                );


    ui->horizontalSlider->setStyleSheet(horizontalStyle);

    QString horizontalStyle2 = QString(
                "QSlider::groove:horizontal{border: 0px solid #ff0000;height:4px;}"
                "QSlider::sub-page:horizontal{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:horizontal{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:horizontal{background:#FFFF00;border:1px solid #0000ff;border-radius:8px;width:18px;height:18px;margin:-6px 1px -6px 1px;}"
                );

    ui->horizontalSlider_2->setStyleSheet(horizontalStyle2);

    //滑动块以图片作背景
    QString horizontalStyle3 = QString(
                "QSlider::groove:horizontal{border: 0px solid #ff0000;height:4px;}"
                "QSlider::sub-page:horizontal{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:horizontal{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:horizontal{border-image:url(:/image/slider.png);width:17px;height:17px;margin-top:-6px;margin-bottom: -6px;}"
                );

    ui->horizontalSlider_3->setStyleSheet(horizontalStyle3);

    // 垂直QSlider  滑动块上面的区域风格  滑动块下面的区域风格  滑块风格
    QString verticalStyle = QString(
                "QSlider::groove:vertical{border: 0px solid #ff0000;width:4px;}"
                "QSlider::sub-page:vertical{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:vertical{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:vertical{background:#FFFFFF;border: 1px solid #666666;border-radius:8px;width:18px;height:18px;margin-left:-6px;margin-right: -6px;}"
                );


    ui->verticalSlider->setStyleSheet(verticalStyle);

    QString verticalStyle2 = QString(
                "QSlider::groove:vertical{border: 0px solid #ff0000;width:4px;}"
                "QSlider::sub-page:vertical{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:vertical{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:vertical{background:#FFFF00;border:1px solid #0000ff;border-radius:8px;height:18px;width:18px;margin:1px -6px 1px -6px;}"
                );

    ui->verticalSlider_2->setStyleSheet(verticalStyle2);

    //滑动块以图片作背景
    QString verticalStyle3 = QString(
                "QSlider::groove:vertical{border: 0px solid #ff0000;width:4px;}"
                "QSlider::sub-page:vertical{background: #2F89FC;border-radius: 2px;}"
                "QSlider::add-page:vertical{background: #FFFFFF;border-radius: 2px;}"
                "QSlider::handle:vertical{border-image:url(:/image/slider.png);width:17px;height:17px;margin-left:-6px;margin-right: -6px;}"
                );

    ui->verticalSlider_3->setStyleSheet(verticalStyle3);
}

运行效果

参考文档

https://doc.qt.io/qt-5/stylesheet-examples.html
https://blog.csdn.net/qq_33659478/article/details/119253405
https://doc.qt.io/qt-5/stylesheet-reference.html
https://blog.csdn.net/tax10240809163com/article/details/50899023
https://blog.csdn.net/weixin_45001971/article/details/126107638

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【探索C++】string类详解

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

pytest一些常见的插件

Pytest拥有丰富的插件架构,超过800个以上的外部插件和活跃的社区,在PyPI项目中以“ pytest- *”为标识。 本篇将列举github标星超过两百的一些插件进行实战演示。 插件库地址:http://plugincompat.herokuapp.com/ 1、pytest-html&#xff1…

浏览器缓存学习笔记

浏览器存储 示例&#xff1a;网页的搜索历史 application->Local Storage&#xff0c;数据通过key-value保存 保存数据 <button onclick"saveData()">点击保存数据</button><script type"text/javascript">let p { name: Jack, ag…

智慧食堂操作教程,建议收藏!

医院食堂作为医疗机构不可或缺的一部分&#xff0c;不仅要提供高质量、健康的餐饮选择&#xff0c;还需要为患者和医护人员提供便捷的用餐体验。 随着科技的不断发展&#xff0c;智慧收银系统应运而生&#xff0c;它已经在医疗机构中引起了广泛关注。智慧收银系统不仅为患者和医…

linux 设置打开文件数

可以使用下面的文件进行设置 /etc/security/limits.d/90-nproc.conf 先来看/etc/security/limits.d/90-nproc.conf 配置文件&#xff1a; [root ~]# cat /etc/security/limits.d/90-nproc.conf # Default limit for number of users processes to prevent # accidental fork…

【产品运营】如何提升B端产品竞争力(下)

“好产品不是能力内核&#xff0c;做好产品的流程才是” 一、建立需求池和需求反馈渠道 需求池管理是B端产品进化最重要的环节&#xff0c;它的重要性远超产品设计、开发等其他环节。 维护需求池有主动和被动两种。 主动维护是产品经理在参与售前、迭代、交付、售后、竞品分…

PMP项目管理课程介绍-2023

8个项目管理工具模板、60个项目管理甘特图标模板、赠送30本项目管理电子书 &#xff08;PMI-PMP&#xff09;国际项目经理认证 培训简章 “21世纪是项目管理的世纪” “战略规划项目管理企业竞争力” 课程背景 “PMP”&#xff0c;即Project Management Professional&#xff0…

Yolov5创新:NEU-DET钢材表面缺陷检测,优化组合新颖程度较高,CVPR2023 DCNV3和InceptionNeXt,涨点明显

1.钢铁缺陷数据集介绍 NEU-DET钢材表面缺陷共有六大类&#xff0c;分别为&#xff1a;crazing,inclusion,patches,pitted_surface,rolled-in_scale,scratches 每个类别分布为&#xff1a; 训练结果如下&#xff1a; 2.基于yolov5s的训练 map值0.742&#xff1a; 2.1 Incepti…

1978-2021年全国各省城镇与农村恩格尔系数数据

1978-2021年全国各省城镇与农村恩格尔系数数据 1、时间&#xff1a;1978-2021年 2、指标&#xff1a;城镇恩格尔系数、农村恩格尔系数 3、范围&#xff1a;31省市 4、来源&#xff1a;各省年鉴 5、用途&#xff1a;反应居民生活质量 6、指标解释&#xff1a; 恩格尔系数…

C++---链表

1、链表 1.1、链表的结构 每个链表开头都有一个头指针Head尾节点的指针域为NULL&#xff0c;用于判断此列表是否结束 如果一个链表开始就为NULL&#xff0c;那么该链表为空链表 链表中的先后不代表在真实内存中的位置&#xff0c;只是单纯的逻辑上关系 1.2、创建链表 我们首…

Spring常见面试题总结

什么是Spring Spring是一个轻量级Java开发框架&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题&#xff0c;以提高开发效率。它是一个分层的JavaSE/JavaEE full-stack&#xff08;一站式&#xff09;轻量级开源框架&#xff0c;为开发Java应用程序…

iPhone升级iOS17后待机模式不能用、没反应?这7个方法快速解决!

iPhone待机模式是苹果为iOS17版本加入的新功能之一&#xff0c;当我们不用iPhone 时&#xff0c;能将它随手放在一旁&#xff0c;并以横向全屏的方式观看时钟与App小工具资讯等。 不过有些果粉发现他们的iPhone待机模式不能用、没反应&#xff0c;照着步骤操作也无法进入iPhon…

MX6LL控制LED设备

注&#xff1a;本篇基于野火IMX6LL PRO开发板 一.什么是驱动程序 驱动程序&#xff08;Driver&#xff09;是一种软件&#xff0c;用于充当操作系统与硬件设备之间的桥梁&#xff0c;使它们能够互相通信和交互。驱动程序的主要功能是提供一个标准化的接口&#xff0c;使操作系…

从0搭建夜莺v6基础监控告警系统(一):基础服务安装

文章目录 1. 写在前面1.1. 官方文档传送门1.2. 部署环境 2. 服务安装2.1. 基础设置2.2. 安装中间件2.3. 安装 nightingale-v62.4. 安装 VictoriaMetrics2.5. 安装 Categraf 3. 部署总结3.1. 安装总结 1. 写在前面 1.1. 官方文档传送门 项目介绍 架构介绍 仪表盘 黄埔营培训计…

来袭!SOLIDWORKS 2024 主要增强功能

在SOLIDWORKS软件使用过程中&#xff0c;我们知道您创建了出色的设计&#xff0c;您的出色设计也会得到构建。为了简化和加快从概念到制造产品的产品开发流程&#xff0c;SOLIDWORKS 2024 包含用户驱动的全新增强功能&#xff0c;重点关注&#xff1a; • 提高工作智能化程度。…

怎么在便携式手持嵌入式设备中实现安全的数字数据传输

为了实施附加的安全性&#xff0c;一些密码算法也可以指定一组不应从设备公开的常数值。这些存储在设备中的&#xff0c;需要防止未经授权暴露的秘密密钥和秘密值在一系列文章中被称为“秘密密钥”。 秘密密钥存储在设备内部&#xff0c;甚至在设备的整个生命周期中都存在。设…

浅谈双十一背后的支付宝LDC架构和其CAP分析

本人汤波&#xff0c;superthem.com 圆领超级个体创始人&#xff0c;Github page地址&#xff1a;https://tbwork.github.io/ 看到很多人在盗用我的文章&#xff0c;还标记成原创&#xff0c;进行收费&#xff0c;非常令人作呕。 我的所有技术文章全部免费阅读&#xff0c;大家…

在Python中 作用域与命名空间的坑

前言&#xff1a; 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 1. 命名空间 1.1 什么是命名空间 Namespace命名空间&#xff0c;也称名字空间&#xff0c;是从名字到对象的映射。 Python中&#xff0c;大…

VMware17 不可恢复错误mks解决方案

用的虚拟机VMware17版本&#xff0c;然后运行带HDR的unity程序&#xff0c;结果报错 网上找了很多解决方案&#xff0c;都没用。毕竟需要在不放弃虚拟机3D加速的情况下运行。 最终皇天不负有心人&#xff0c;亲测有效的方法&#xff1a; 在虚拟机名字.vmx文件里添加以下2行&a…

【整理】难得的中文开源数据集

搞大模型训练&#xff0c;最重要的就是高质量的数据集。 得数据者得天下。全球最大的AI开源社区Huggingface上&#xff0c;已经有5万多的开源数据集了&#xff0c;其中涉及中文的数据集只有区区可怜的151个。中国的AI产业要迎头赶上&#xff0c;中文的数据集是最大的短板之一。…