qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)二

简介: qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)

示例:QMessageBox定制(文本交互)

QMessageBox { 
    messagebox-text-interaction-flags: 5; /* 5为可选中, 缺省为不可选中 */
}

图片.png

 

QProgressBar

窗口部件

样式表使用方式

QProgressBar

图片.png

支持盒模式。

进度条的方块可以通过::chunk控制,方块会显示在内容矩形上,即盒模式中的content rectangle。

如果进度条要显示文字,那么使用text-align属性定位文本。

不确定状态由::indeterminate控制。

示例1:QProgressBar定制

图片.png

QProgressBar {
    border: 2px solid grey;
    border-radius: 5px;
    text-align: center;
}
QProgressBar::chunk {
    background-color: #05B8CC;
    width: 20px;
}

图片.png

QProgressBar {
    border: 2px solid grey;
    border-radius: 5px;
}
QProgressBar::chunk {
    background-color: #05B8CC;
    width: 20px;
}
QProgressBar {
    border: 2px solid grey;
    border-radius: 5px;
    text-align: center;
}
/* 对之前的例子,增加了方块部分 */
QProgressBar::chunk {
    background-color: #CD96CD;
    width: 10px;
    margin: 0.5px;
}

示例2:QProgressBar定制(2021年05月07日补充)

/* 安装进度条 */
QProgressBar {
  border-image: url(:/images/progressBarBackground.png);  
}
QProgressBar::chunk {
  border-image: url(:/images/progressBarFrontground.png);
}

QPushButton

窗口部件

样式表使用方式

QPushButton图片.png

支持盒模式。

支持:default:flat:checked, :hoverd, :disabled状态。

如果QPushButton拥有菜单,则菜单指示器可以通过::menu-indicator控制。

如果QPushButton拥有菜单,则有:open:close状态可控制。

警告:如果设置了背景颜色(background-color),背景可能不会生效除非设置border属性为某些值。这是因为,默认QPushbutton会绘制一个凸出的边框会完全覆盖背景颜色。例如:

1. QPushButton{
2. background-color: red;
3. border: none;
4. }

示例1:QPushButton定制(外观渐进色,有子菜单,圆角)

图片.png

QPushButton {
    border: 2px solid #8f8f91;
    border-radius: 6px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                  stop: 0 #f6f7fa,
                                  stop: 1 #dadbde);
    min-width: 80px;
}
QPushButton:pressed {
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                  stop: 0 #dadbde, 
                                  stop: 1 #f6f7fa);
}
QPushButton:flat {
    border: none; /* no border for a flat push button */
}
QPushButton:default {
    border-color: navy; /* make the default button prominent */
}
/* 从这往下,因为未做按钮菜单,效果未提现 */
QPushButton:open { /* when the button has its menu open */
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                  stop: 0 #dadbde, 
                                  stop: 1 #f6f7fa);
}
QPushButton::menu-indicator {
    Image: url(menu_indicator.png);
    subcontrol-origin: padding;
    subcontrol-position: bottom right;
}
QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open {
    position: relative;
    top: 2px; left: 2px; /* shift the arrow by 2 px */
}

示例2:QPushButton双图,设置background-image,下面还有broder

background: url(:/images/mainWindow/lowSpeed.png) no-repeat center center;

示例3:QPushButton工控三状态(2021年5月1日补充)

 * {
  font: bold 48px "黑体";
}
QWidget#page_main {
  background-color: rgb(40, 140, 255);
}
QPushButton {
  background-color: rgb(0, 60, 100);
  border-width: 4px; 
  border-color: rgb(200, 200, 200);
  border-style: outset;  
  color: white;
}
QPushButton::hover {
  background-color: rgb(0, 60, 100);
  border-width: 6px; 
  border-color: rgb(160, 160, 160);
  border-style: inset;  
  color: white;
}
QPushButton::pressed {
  background-color: rgb(0, 60, 100);
  border-width: 10px; 
  border-color: rgb(100, 100, 100);
  border-style: inset;  
  color: white;
}

示例4:三色浅绿系列定制(2021年06月10日补充)

QPushButton {
  border: none;
  border-radius: 6px;
  font-size: 17px;
  color: white;
  background-color: rgba(87, 175, 171, 255);
}
QPushButton:disabled {
  background-color: rgba(154, 206, 205, 255);
}
QPushButton:pressed,
QPushButton:checked {
  color: white;
  background-color:  rgba(37, 130, 122, 255);
}

QRadioButton

窗口部件

样式表使用方式

QRadioButton

图片.png

支持盒模式。

选择指示器使用::indicator控制。默认的,指示器显示在content rectangle的左上角。

spacing属性可控制indicator与text之间的距离。

示例:QRadioButton定制

QRadioButton::indicator {
    width: 13px;
    height: 13px;
}
QRadioButton::indicator::unchecked {
    /* image: url(:/images/radiobutton_unchecked.png); */
    background-color: rgb(255,0,0,60);
}
QRadioButton::indicator:unchecked:hover {
    /* image: url(:/images/radiobutton_unchecked_hover.png); */
    background-color: rgb(255,0,0,120);
}
QRadioButton::indicator:unchecked:pressed {
    /* image: url(:/images/radiobutton_unchecked_pressed.png); */
    background-color: rgb(255,0,0,180);
}
QRadioButton::indicator::checked {
    /* image: url(:/images/radiobutton_checked.png); */
    background-color: rgb(0,255,0,60);
}
QRadioButton::indicator:checked:hover {
    /* image: url(:/images/radiobutton_checked_hover.png); */
    background-color: rgb(0,255,0,120);
}
QRadioButton::indicator:checked:pressed {
    /* image: url(:/images/radiobutton_checked_pressed.png); */
    background-color: rgb(0,255,0,180);
}

图片.png

 

QScrollBar

窗口部件

样式表使用方式

QScrollBar

图片.png

 

图片.png

 

支持盒模式。

content rectangle是滑动区域。

QScrollBar(其宽度和高度依赖于滚动条的方向)的程度可分别被widthheight属性设置。

确定QScrollBar方向,通过:horizontal:vertical状态控制。

滑块可以使用::handle定制。

根据滑块的方向,可设置min-widthmin-height属性。

拥有子控件-增加线,可通过::add-line控制。默认增加线是放在border rectangle的右上角。增加线拥有箭头控件,依赖方向可使用::right-arrow::down-arrow控制,默认箭头会放在增加线控件的content rectangle中间。

拥有子控件-减少线,可通过::sub-line控制。默认减少线是放在border rectange的右下角。减少线拥有箭头控件,依赖方向可使用::left-arrow::up-arrow控制,默认箭头会放在下划线控件的content rectangle中间。

拥有子控件-减少页,通过::sub-page控制减去页面区域。

拥有子空间-增加也,通过::add-page控制增加页面区域。

 

示例1:QScrollBar定制(垂直为主例,水平为辅例)

图片.png

QScrollBar:horizontal {
    border: 2px solid black;
    background: red; /* 自带白底色,导致白红白红背景 */
    height: 15px;
    /* 上 左 下 右 */
    margin: 2px 22px 2px 22px;
}
QScrollBar::handle:horizontal {
    background: rgb(0,0,255);
    min-width: 10px;
}
QScrollBar::sub-line:horizontal {
    border: 2px solid grey;
    background: rgb(0,255,0);
    width: 20px;
    subcontrol-position: left;
    subcontrol-origin: margin;
}
QScrollBar::add-line:horizontal {
    border: 2px solid grey;
    background: rgb(255,0,0);
    width: 20px;
    subcontrol-position: right;
    subcontrol-origin: margin;
}

图片.png

QScrollBar:horizontal {
    border: 2px solid black;
    background: red;
    height: 15px;
    /* 上 左 下 右 */
    margin: 2px 22px 2px 22px;
}
QScrollBar::handle:horizontal {
    background: rgb(0,0,255);
    min-width: 10px;
}
QScrollBar::sub-line:horizontal {
    border: 2px solid grey;
    background: rgb(0,255,0);
    width: 20px;
    subcontrol-position: left;
    subcontrol-origin: margin;
}
QScrollBar::add-line:horizontal {
    border: 2px solid grey;
    background: rgb(255,0,0);
    width: 20px;
    subcontrol-position: right;
    subcontrol-origin: margin;
}
/* 比紧邻上面的示例多的代码部分 */
QScrollBar:left-arrow:horizontal {
    border: 2px solid grey;
    width: 5px;
    height: 5px;
    background: while;
}
QScrollBar::add-page:horizontal{
    background: none;
}

图片.png

QScrollBar:horizontal {
    border: 2px solid green;
    background: cyan;
    height: 15px;
    margin: 0px 40px 0 0px;
}
QScrollBar::handle:horizontal {
    background: gray;
    min-width: 20px;
}
QScrollBar::add-line:horizontal {
    background: blue;
    width: 16px;
    subcontrol-position: right;
    subcontrol-origin: margin;
    border: 2px solid black;
}
QScrollBar::sub-line:horizontal {
    background: magenta;
    width: 16px;
    subcontrol-position: top right; /* 减少线(块)定位位置 */
    subcontrol-origin: margin;
    border: 2px solid black;
    position: absolute;
    right: 20px;
}
QScrollBar:left-arrow:horizontal, QScrollBar::right-arrow:horizontal {
    width: 3px;
    height: 3px;
    background: pink;
}
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
    background: none;
}

示例2:QScrollBar定制(垂直为主例,水平为辅例)

图片.png

QScrollBar:vertical {
    border: 2px solid grey;
    background: #32CC99;
    width: 15px;
    margin: 22px 0 22px 0;
}
QScrollBar::handle:vertical {
    background: white;
    min-height: 20px;
}
QScrollBar::add-line:vertical {
    border: 2px solid grey;
    background: #32CC99;
    height: 20px;
    subcontrol-position: bottom;
    subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
    border: 2px solid grey;
    background: #32CC99;
    height: 20px;
    subcontrol-position: top;
    subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
    border: 2px solid grey;
    width: 3px;
    height: 3px;
    background: white;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
    background: none;
}

示例3:水平滚动条定制(无法定制滑块最大宽度:小于标准宽度无法更小)

               

/* 水平滚动条 */
QScrollBar:horizontal {
    border: 0px solid black;
    background: rgba(239, 238, 237, 255); /* 自带白底色,导致白红白红背景 */
    height: 26px;
    /* 上 左 下 右 */
    margin: 0px 28px 0px 28px;
}
/* 两端按钮 */
QScrollBar::sub-line:horizontal {
    border: 0px solid grey;
    background: rgb(0, 233, 215);
    width: 28px;
    subcontrol-position: left;
    subcontrol-origin: margin;
  border-image: url(:/scanWidget/images/baseSurface/sub.png);
}
QScrollBar::add-line:horizontal {
    border: 0px solid grey;
    background: rgb(255,0,0);
    width: 28px;
    subcontrol-position: right;
    subcontrol-origin: margin;
  border-image: url(:/scanWidget/images/baseSurface/add.png);
}
/* 加减区域的背景色 */
QScrollBar::sub-page:horizontal  {
  width: 35px;
  height: 10px;
    background: rgb(183, 233, 215); 
}
QScrollBar::add-page:horizontal  {
  width: 35px;
  height: 10px;
    background: rgb(240,240,240);
}
/* 滑块: 无法设置小于标准宽度小的宽度 */
QScrollBar::handle:horizontal {
    background: rgba(53,143,134,255);
  min-width: 6px;
  border: 0px solid rgba(0,0,0,0);
  margin: 0 0 0 0;
}

示例4:灰色简单系列定制(2021年6月15日补充)

/* 纯色滚动条定制 */
QScrollBar:vertical {
    border: 0px solid rgb(88, 183, 179);
    background: rgba(255, 255, 255, 25);
  min-width: 8px;
    max-width: 8px;
    margin: 10 0 10 0;
  border-radius: 4px;
}
QScrollBar::handle:vertical {
    background: rgba(255, 255, 255, 40);
  border-radius: 4px;
}
QScrollBar::add-page,
QScrollBar::sub-page{
    background: transparent;
}
QScrollBar::add-line,
QScrollBar::sub-line{
    background: transparent;
}

示例5:水平滚动条定制(2021年06月21日补充)

/* 纯色滚动条定制 */
QScrollBar:horizontal  {
    border: 0px solid rgb(88, 183, 179);
    background: rgb(214, 214, 214);
  min-height: 12px;
    max-height: 12px;
    margin: 20 0 10 0;
  border-radius: 4px;
}
QScrollBar::handle:horizontal {
    background: rgb(45, 86, 150);
  border-radius: 4px;
}
QScrollBar::add-page,
QScrollBar::sub-page{
    background: transparent;
}
QScrollBar::add-line,
QScrollBar::sub-line{
    background: transparent;
}

 

 

上一篇:《qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
下一篇:《qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)

若该文为原创文章,转载请注明原文出处

本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79424146


相关文章
|
自然语言处理 数据可视化
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
本文介绍了在C# WPF应用程序中引入外部iconfont图标时可能遇到的显示问题及其解决方法:1) 检查资源路径和引入格式是否正确,确保字体文件引用格式为“#xxxx”,并正确指向字体文件位置;2) 确保图标资源被包含在程序集中,通过设置字体文件的生成操作为Resource(资源)来实现。
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
|
6月前
|
前端开发
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
|
缓存
《QT从基础到进阶·二十二》QGraphicsView显示大量图形项item导致界面卡顿的解决办法
《QT从基础到进阶·二十二》QGraphicsView显示大量图形项item导致界面卡顿的解决办法
673 0
|
数据安全/隐私保护 计算机视觉
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
|
C#
WPF整理-为控件添加自定义附加属性
原文:WPF整理-为控件添加自定义附加属性 附加属性,大家都不陌生,最常见的是Canvas.Left/Canvas.Top,类似的也有Grid.Row/Grid.Column等附加属性。举个最常见的例子 需要说明的是并不是所有的附加属性都是元素放进去后才会有附加效果,上面的例子只是刚好是这种错觉的巧合情况,Grid.Row也属于这种巧合。
2130 0
WPF整理-为控件添加自定义附加属性
WPF中如何获取选中行/单元格所在行的数据
WPF中如何获取选中行/单元格所在行的数据
|
计算机视觉
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)二
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)二
|
计算机视觉
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)