QSS之QScrollArea

QScrollArea在实际的开发过程中经常使用,主要是有些界面一屏显示不下,所以得用QScorllArea带滚动条拖动显示剩余的界面。默认的QScrollArea滚动条不满设计的风格,因此我们必须设置自已的滚动条风格,QScrollBar分为水平horizontal和垂直vertical,在设置的过程中常见的属性如下:

首先看垂直滚动条属性:

属性意思
QScrollBar:vertical垂直滚动条整体背景风格
QScrollBar::handle:vertical垂直滚动条滑动块风格
QScrollBar::add-line:vertical垂直滚动条底部添加一个按钮
QScrollBar::sub-line:vertical垂直滚动条覆盖顶部的按钮
QScrollBar:up-arrow:vertical垂直滚动条顶边按钮上的箭头
QScrollBar:down-arrow:vertical垂直滚动条底部按钮上的箭头
QScrollBar::add-page:vertical垂直滚动条滑动块下边区域的风格
QScrollBar::sub-page:vertical垂直滚动条滑动块上边区域的风格

//垂直滚动条风格QString verticalStyle = QString("QScrollBar:vertical{border:2px solid grey;background:#32CC99;width:15px;margin:22px 0 22px 0;}"                                            //滚动条底部背景风格"QScrollBar::handle:vertical{background:yellow; min-height:20px;}"                                                                          //滑动块风格"QScrollBar::add-line:vertical{border:2px solid red;background:#325599;height:20px;subcontrol-position:bottom;subcontrol-origin:margin;}"   //底部添加一个按钮"QScrollBar::sub-line:vertical{border:2px solid blue;background:#003290;height:20px;subcontrol-position:top;subcontrol-origin:margin;}"     //覆盖顶部的按钮"QScrollBar:up-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                           //上边按钮上的箭头"QScrollBar:down-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                         //下边按钮上的箭头"QScrollBar::add-page:vertical{background:gray;}"                                                                                           //滑动块下边区域的风格"QScrollBar::sub-page:vertical{background:cyan;}"                                                                                           //滑动块上边区域的风格);ui->scrollArea->verticalScrollBar()->setStyleSheet(verticalStyle);

 

水平滚动条属性

属性意思
QScrollBar:horizontal水平滚动条底部背景风格
QScrollBar::handle:horizontal水平滚动条滑动块风格
QScrollBar::add-line:horizontal水平滚动条右边添加一个按钮
QScrollBar::sub-line:horizontal水平滚动条覆盖左边的按钮
QScrollBar:left-arrow:horizontal水平滚动条左边按钮上的箭头
QScrollBar:right-arrow:horizontal水平滚动条右边按钮上的箭头
QScrollBar::add-page:horizontal水平滚动条滑动块右边区域的风格
QScrollBar::sub-page:horizontal水平滚动条滑动块左边区域的风格
//水平滚动条风格 边距顺序margin: top right bottom leftQString horizontalStyle = QString("QScrollBar:horizontal{border:2px solid grey;background:#32CC99;height:15px;margin:0px 20px 0px 20px;}"                                     //滚动条底部背景风格"QScrollBar::handle:horizontal{background:yellow; min-width:20px;}"                                                                         //滑动块风格"QScrollBar::add-line:horizontal{border:2px solid red;background:#325599;width:20px;subcontrol-position:right;subcontrol-origin:margin;}"   //右边添加一个按钮"QScrollBar::sub-line:horizontal{border:2px solid blue;background:#003290;width:20px;subcontrol-position:left;subcontrol-origin:margin;}"   //覆盖左边的按钮"QScrollBar:left-arrow:horizontal{border:2px solid green; width 3px; height 3px; background: white;}"                                       //左边按钮上的箭头"QScrollBar:right-arrow:horizontal{border:2px solid green; width 3px; height 3px; background: white;}"                                      //右边按钮上的箭头"QScrollBar::add-page:horizontal{background:gray;}"                                                                                         //滑动块右边区域的风格"QScrollBar::sub-page:horizontal{background:cyan;}"                                                                                         //滑动块左边区域的风格);ui->scrollArea->horizontalScrollBar()->setStyleSheet(horizontalStyle);

运行效果:

下面看具体的代码示例:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();void initView();void initData();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPalette>
#include <QScrollArea>
#include <QScrollBar>
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->resize(1000, 500);initView();initData();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::initView()
{//给父窗体填充颜色QPalette palette = ui->scrollAreaWidgetContents->palette();palette.setBrush(QPalette::Window, QBrush(QColor(0, 0, 60)));ui->scrollAreaWidgetContents->setAutoFillBackground(true);ui->scrollAreaWidgetContents->setPalette(palette);QPalette palette2 = ui->scrollAreaWidgetContents_2->palette();palette2.setBrush(QPalette::Window, QBrush(QColor(0, 60, 0)));ui->scrollAreaWidgetContents_2->setAutoFillBackground(true);ui->scrollAreaWidgetContents_2->setPalette(palette2);QPalette palette3 = ui->scrollAreaWidgetContents_3->palette();palette3.setBrush(QPalette::Window, QBrush(QColor(60, 0, 0)));ui->scrollAreaWidgetContents_3->setAutoFillBackground(true);ui->scrollAreaWidgetContents_3->setPalette(palette3);QPalette palette4 = ui->scrollAreaWidgetContents_4->palette();palette4.setBrush(QPalette::Window, QBrush(QColor(60, 60, 0)));ui->scrollAreaWidgetContents_4->setAutoFillBackground(true);ui->scrollAreaWidgetContents_4->setPalette(palette4);//这里注意,要比主窗体的尺寸要大,不然太小的话会留下一片空白ui->scrollAreaWidgetContents->setMinimumSize(1500, 1000);ui->scrollAreaWidgetContents_2->setMinimumSize(1500, 1000);ui->scrollAreaWidgetContents_3->setMinimumSize(1500, 1000);ui->scrollAreaWidgetContents_4->setMinimumSize(1500, 1000);ui->scrollAreaWidgetContents_5->setMinimumSize(1500, 1000);
}void MainWindow::initData()
{//水平滚动条风格 边距顺序margin: top right bottom leftQString horizontalStyle = QString("QScrollBar:horizontal{border:2px solid grey;background:#32CC99;height:15px;margin:0px 20px 0px 20px;}"                                     //滚动条底部背景风格"QScrollBar::handle:horizontal{background:yellow; min-width:20px;}"                                                                         //滑动块风格"QScrollBar::add-line:horizontal{border:2px solid red;background:#325599;width:20px;subcontrol-position:right;subcontrol-origin:margin;}"   //右边添加一个按钮"QScrollBar::sub-line:horizontal{border:2px solid blue;background:#003290;width:20px;subcontrol-position:left;subcontrol-origin:margin;}"   //覆盖左边的按钮"QScrollBar:left-arrow:horizontal{border:2px solid green; width 3px; height 3px; background: white;}"                                       //左边按钮上的箭头"QScrollBar:right-arrow:horizontal{border:2px solid green; width 3px; height 3px; background: white;}"                                      //右边按钮上的箭头"QScrollBar::add-page:horizontal{background:gray;}"                                                                                         //滑动块右边区域的风格"QScrollBar::sub-page:horizontal{background:cyan;}"                                                                                         //滑动块左边区域的风格);ui->scrollArea->horizontalScrollBar()->setStyleSheet(horizontalStyle);QString horizontalStyle2 = QString("QScrollBar:horizontal{border:2px solid grey;background:#32CC99;height:15px;margin:0px 20px 0px 20px;}"                                     //滚动条底部背景风格"QScrollBar::handle:horizontal{background:yellow; min-width:20px;}"                                                                         //滑动块风格"QScrollBar::add-line:horizontal{border:2px solid red;background:#325599;width:20px;subcontrol-position:right;subcontrol-origin:margin;}"   //右边添加一个按钮"QScrollBar::sub-line:horizontal{border:2px solid blue;background:#003290;width:20px;subcontrol-position:left;subcontrol-origin:margin;}"   //覆盖左边的按钮"QScrollBar:left-arrow:horizontal{border:none; background: none;color:none;}"  //隐藏左边的箭头                                     //左边按钮上的箭头"QScrollBar:right-arrow:horizontal{border:none; background: none;color:none;}"  //隐藏右边的箭头                                    //右边按钮上的箭头"QScrollBar::add-page:horizontal{background:gray;}"                                                                                         //滑动块右边区域的风格"QScrollBar::sub-page:horizontal{background:cyan;}"                                                                                         //滑动块左边区域的风格);ui->scrollArea_2->horizontalScrollBar()->setStyleSheet(horizontalStyle2);//设置滑动块圆角时,border-radius的值要小于height的二分之一才有效果QString horizontalStyle3 = QString("QScrollBar:horizontal{background:white;height:8px;}"           //滚动条底部背景风格"QScrollBar::handle:horizontal{background:#AAAAAA;min-width:20px;height:4px;border-radius:2px;margin:2px 0px 2px 0px;}""QScrollBar::handle:horizontal:hover{background:#999999;height:8px;border-radius:3px;margin:0px;}""QScrollBar::add-line:horizontal{width:0;height:0;}"            //隐藏左端的按钮                                                                                       //滑动块右边区域的风格"QScrollBar::sub-line:horizontal{width:0;height:0;}"            //隐藏右端的按钮                                                                                       //滑动块左边区域的风格);ui->scrollArea_3->horizontalScrollBar()->setStyleSheet(horizontalStyle3);//垂直滚动条风格QString verticalStyle = QString("QScrollBar:vertical{border:2px solid grey;background:#32CC99;width:15px;margin:22px 0 22px 0;}"                                            //滚动条底部背景风格"QScrollBar::handle:vertical{background:yellow; min-height:20px;}"                                                                          //滑动块风格"QScrollBar::add-line:vertical{border:2px solid red;background:#325599;height:20px;subcontrol-position:bottom;subcontrol-origin:margin;}"   //底部添加一个按钮"QScrollBar::sub-line:vertical{border:2px solid blue;background:#003290;height:20px;subcontrol-position:top;subcontrol-origin:margin;}"     //覆盖顶部的按钮"QScrollBar:up-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                           //上边按钮上的箭头"QScrollBar:down-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                         //下边按钮上的箭头"QScrollBar::add-page:vertical{background:gray;}"                                                                                           //滑动块下边区域的风格"QScrollBar::sub-page:vertical{background:cyan;}"                                                                                           //滑动块上边区域的风格);ui->scrollArea->verticalScrollBar()->setStyleSheet(verticalStyle);QString verticalStyle2 = QString("QScrollBar:vertical{border:2px solid grey;background:#32CC99;width:15px;margin:22px 0 22px 0;}"                                            //滚动条底部背景风格"QScrollBar::handle:vertical{background:yellow; min-height:20px;}"                                                                          //滑动块风格"QScrollBar::add-line:vertical{border:2px solid red;background:#325599;height:20px;subcontrol-position:bottom;subcontrol-origin:margin;}"   //底部添加一个按钮"QScrollBar::sub-line:vertical{border:2px solid blue;background:#003290;height:20px;subcontrol-position:top;subcontrol-origin:margin;}"     //覆盖顶部的按钮"QScrollBar:up-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                           //上边按钮上的箭头"QScrollBar:down-arrow:vertical{border:2px solid green; width 3px; height 3px; background: white;}"                                         //下边按钮上的箭头"QScrollBar::add-page:vertical{background:gray;}"                                                                                           //滑动块下边区域的风格"QScrollBar::sub-page:vertical{background:cyan;}"                                                                                           //滑动块上边区域的风格);ui->scrollArea_2->verticalScrollBar()->setStyleSheet(verticalStyle2);//设置滑动块圆角时,border-radius的值要小于width的二分之一才有效果QString verticalStyle3 = QString("QScrollBar:vertical{background:white;width:8px;}"              //滚动条底部背景风格"QScrollBar::handle:vertical{background:#AAAAAA;min-height:20px;width:4px;border-radius:2px;margin:0px 2px 0px 2px;}""QScrollBar::handle:vertical:hover{background:#999999;width:8px;border-radius:3px;margin:0px;}""QScrollBar::add-line:vertical{width:0;height:0;}"              //隐藏左端的按钮                                                                                       //滑动块右边区域的风格"QScrollBar::sub-line:vertical{width:0;height:0;}"              //隐藏右端的按钮                                                                                       //滑动块左边区域的风格);ui->scrollArea_3->verticalScrollBar()->setStyleSheet(verticalStyle3);       //设置滚动条属性ui->scrollArea_3->setStyleSheet("QScrollArea{background-color:white;border:0px solid white;}");//设置QScrollArea边框属性}

运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORACLE Redo Log Buffer 重做日志缓冲区机制的设计

最近和朋友包括一些国产数据库的研发人员交流&#xff0c;很多程序员认为 Oracle 已经过时&#xff0c;开源数据库或者他们研发的国产数据库才代表数据库发展的未来。甚至在很多交流会议上拿出自家产品的某一个功能点和 Oracle 对比就觉得已经遥遥领先。 实际上数据库系统的发展…

zookeeper mac安装

目录 1.下载zookeeper安装包 2.解压安装包 3.修改配置文件 4.启动服务端 5.启动客户端 这边工作中用到了zookeeper组件&#xff0c;但自己独立安装弄的不太多&#xff0c;这边本机mac装一个做测试使用 以下是安装记录&#xff0c;可以作为参考 从以下链接zookeeper版本列…

windows系统利用powershell查看系统支持那些Windows功能选项

在PowerShell中&#xff0c;我们可以使用Get-WindowsOptionalFeature cmdlet命令来查看Windows功能选项。 打开PowerShell 输入以下命令&#xff1a;将结果输出到1.log Get-WindowsOptionalFeature -Online >1.log 可以看到在指定路径下看到生成了文件 打开查看内容&…

手机号码格式校验:@Phone(自定义参数校验注解)

需求 新增接口 和 修改接口 中&#xff0c;手机号码的格式校验是普遍需要的。 在每个手机号码字段上添加正则表达式校验注解来实现校验&#xff0c;重复书写&#xff0c;容易出错&#xff1b;在不同的手机号码字段上&#xff0c;可能使用了不同的校验规则&#xff0c;无法有效…

网络协议--链路层

2.1 引言 从图1-4中可以看出&#xff0c;在TCP/IP协议族中&#xff0c;链路层主要有三个目的&#xff1a; &#xff08;1&#xff09;为IP模块发送和接收IP数据报&#xff1b; &#xff08;2&#xff09;为ARP模块发送ARP请求和接收ARP应答&#xff1b; &#xff08;3&#xf…

【51单片机编写占空比按秒渐亮与渐暗】2023-10-2

昨天刚在W10上安装CH340驱动&#xff0c;又下载到板子上LCD1602定时器时钟程序&#xff0c;为了调试&#xff0c;调用了一个LED观察控制蜂鸣器按秒响的变量&#xff0c;几经调试才发觉该开发板用的是有源蜂鸣器&#xff0c;不用IO取反操作&#xff0c;直接控制IO的高低电平即可…

在亚马逊云科技Amazon SageMaker上部署构建聊天机器人的开源大语言模型

开源大型语言模型&#xff08;LLM&#xff09;已经变得流行起来&#xff0c;研究人员、开发人员和组织都可以使用这些模型来促进创新和实验。这促进了开源社区开展合作&#xff0c;从而为LLM的开发和改进做出贡献。开源LLM提供了模型架构、训练过程和训练数据的透明度&#xff…

讲讲项目里的仪表盘编辑器(二)

应用场景 正常来说&#xff0c;编辑器应用场景应该包括&#xff1a; 编辑器-预览 编辑器 最终运行时 怎么去设计 上一篇推文&#xff0c;我们已经大概了解了编辑器场景。接下来&#xff0c;我们来看预览时的设计 编辑器-预览 点击预览按钮&#xff0c;执行以…

<C++> 哈希表模拟实现STL_unordered_set/map

哈希表模板参数的控制 首先需要明确的是&#xff0c;unordered_set是K模型的容器&#xff0c;而unordered_map是KV模型的容器。 要想只用一份哈希表代码同时封装出K模型和KV模型的容器&#xff0c;我们必定要对哈希表的模板参数进行控制。 为了与原哈希表的模板参数进行区分…

百度资源搜索平台出现:You do not have the proper credential to access this page.怎么办?

Forbidden site not allowed You do not have the proper credential to access this page. If you think this is a server error, please contact the webmaster. 如果你的百度资源平台&#xff0c;点进去出现这个提示&#xff0c;说明您的网站已经被百度清退了。如果你的网站…

把握现在,热爱生活

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 厨艺房价琐事计划随想 今年的中秋国庆假期放8天&#xff0c;比春节假期…

IIS管理器无法打开。启动后,在任务栏中有,但是窗口不见了

找到IIS管理器启动程序的所在位置 并在cmd命令行中调用 inetmgr.exe /reset 进行重启 先查看IIS管理器属性&#xff0c;找到其位置 管理员模式打开cmd命令行&#xff0c;并切换到上面的文件夹下运行Inetmgr.exe /reset 运行完成后可以重新看到IIS窗口 原因&#xff1a;由于某…

安防监控/视频汇聚平台EasyCVR云端录像不展示是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

在Windows11家庭中文版中启用Copilot(预览版)

1、下载ViveTool-vx.x.x.zip 2、解压下载的压缩包ViveTool-vx.x.x.zip 3、复制ViveTool文件夹的路径 4、按下wins&#xff0c;打开搜索 5、输入cmd&#xff0c;并选择“以管理员身份运行” 6、在cmd中输入以下命令&#xff0c;进入ViveTool文件夹&#xff1a; cd ViveTool…

【自监督Re-ID】ICCV_2023_Oral | ISR论文阅读

Codehttps://github.com/dcp15/ISR_%20ICCV2023_Oral 面向泛化行人再识别的身份导向自监督表征学习&#xff0c;清华大学 目录 导读 摘要 相关工作 DG ReID 用于ReID的合成数据 无监督表征学习 Identity-Seeking Representation Learning 结果 消融实验 导读 新角度…

Sentinel学习(2)——sentinel的使用,引入依赖和配置 对消费者进行流控 对生产者进行熔断降级

前言 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 本篇博客介绍sentinel的使用&#x…

【设计模式】五、原型模式

文章目录 概述示例传统的方式的优缺点原型模式原理结构图-uml 类图 原型模式解决克隆羊问题的应用实例Sheep类实现clone()运行原型模式在 Spring 框架中源码分析 深入讨论-浅拷贝和深拷贝浅拷贝的介绍 小结 概述 示例 克隆羊问题 现在有一只羊 tom&#xff0c;姓名为: tom, 年…

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石①

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石① 第十九章 驱动程序基石①19.1 休眠与唤醒19.1.1 适用场景19.1.2 内核函数19.1.2.1 休眠函数19.1.2.2 唤醒函数 19.1.3 驱动框架19.1.4 编程19.1.4.1 驱动程序关键代码19.1.4.2 应用程序 19.1.5 上机实验19.1.6 使用环形缓…

十七,IBL-打印各个Mipmap级别的hdr环境贴图

预滤波环境贴图类似于辐照度图&#xff0c;是预先计算的环境卷积贴图&#xff0c;但这次考虑了粗糙度。因为随着粗糙度的增加&#xff0c;参与环境贴图卷积的采样向量会更分散&#xff0c;导致反射更模糊&#xff0c;所以对于卷积的每个粗糙度级别&#xff0c;我们将按顺序把模…

debian设置允许ssh连接

解决新debian系统安装后不能通过ssh连接的问题。 默认情况下&#xff0c;Debian系统不开启SSH远程登录&#xff0c;需要手动安装SSH软件包并设置开机启动。 > 设置允许root登录传送门&#xff1a;debian设置允许root登录 首先检查/etc/ssh/sshd_config文件是否存在。 注意…