示例1:QTabWidget和QTabBar定制

图片.png

QTabWidget::pane { /* The tab widget frame */
    border-top: 2px solid #C2C7CB;
QTabWidget::tab-bar {
    left: 5px; /* move to the right by 5px */
/* Style the tab using the tab sub-control. Note that it reads QTabBar _not_ QTabWidget */
QTabBar::tab {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
    stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
    border: 2px solid #C4C4C3;
    border-bottom-color: #C2C7CB; /* same as the pane color */
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    min-width: 8ex;
    padding: 2px;
QTabBar::tab:selected, QTabBar::tab:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
    stop: 0 #fafafa, stop: 0.4 #f4f4f4,
    stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
QTabBar::tab:selected {
    border-color: #9B9B9B;
    border-bottom-color: #C2C7CB; /* same as pane color */
QTabBar::tab:!selected {
    margin-top: 2px; /* make non-selected tabs look smaller */
}

示例2:QTabWidget和QTabBar定制

图片.png

示例3:QTabWidget和QTabBar定制

图片.png

示例4:QTabWidget和QTabBar定制

图片.png

示例5:只定制TabWidget上的QTabBar的文字,tab的宽度和高度

image

示例6:透明颜色,背景穿透(配合其TabWidget的tab页,为QWidget,补充日期:2021年03月01日)

image

QTabWidget

请参照紧邻上面的QTabBar进行样式定制。

窗口部件

样式表使用方式

QTabWidget

外框frame由 ::pane 控制。

左右角分别由 ::left-corner ::right-coner 控制。

tabBar的位置由 ::tab-bar 控制。

默认子控件都是QWindowsStyle时QTabWidget的位置。

定制QTabBar请使用tab-bar控制。

依据tabs的方向,拥有四个状态 :top :left :right :bottom

查看示例:QTabWidget和QTabBar定制

示例1:透明颜色,背景穿透(配合其TabWidget的tab页,为QWidget,补充日期:2021年03月01日)

image

示例2:浅绿色定制,区域透明

image

QTableView

窗口部件

样式表使用方式

QTableView

图片.png

支持盒模式。

当alternating row colors属性设置为允许时,交替颜色可通过属性 alternate-background-color 控制。

被选中的内容部分的前景色和背景需要通过属性 selection-color selection-background-color 控制。

在QTableView控件可作为一个QAbstractButton实现,还可以使用 “QTableView QTableCornerButton::section“选择器选择后控制样式。

表格颜色使用属性 gridline-color

背景可滚动,可参照 QAbstractScrollArea 窗口部件

示例1:QTableView定制

图片.png

示例2:透明与半透明背景,看到底部窗口背景图片(2021年03月04日更新)

image

QTableWidget(查看QTableView)

窗口部件

样式表使用方式

QTableWidget

查看QTableView

示例:QTableWidget定制

image

QTextEdit

窗口部件

样式表使用方式

QTextEdit

支持盒模式。

被选中的内容部分的前景色和背景需要通过属性 selection-color selection-background-color 控制。

示例1:协议阅读界面(2021年05月08日补充)

image image

image image image

QTimeEdit(查看QSpinBox)

窗口部件

样式表使用方式

QTimeEdit

查看QSpinBox

QToolBar

窗口部件

样式表使用方式

QToolBar

图片.png

支持盒模式。

拥有 :top :left : right :bottom 状态,依赖tool-bar所在区域。

拥有 :first :last :middle :only-one 状态指示器。

通过 ::separator 控制分隔符。

示例:定制QToolBar

图片.png

QToolButton

窗口部件

样式表使用方式

QToolButton 图片.png

支持盒模式。

如果QToolButton拥有菜单,则可使用 ::menu-indicator 来控制菜单指示器。默认的,菜单指示器是定位在padding rectangle的右下角。

如果QtoolButton是 QToolButton::MenuButtonPopop 模式,则可使用 ::menu-button 来绘制menu button。

::menu-arraow 可用户绘制menu-button内的菜单箭头。默认的,它位置在menu-button子控件的centent rectangle中心。

当QToolButton显示箭头时,有且由 ::up-arrow ::down-arrow ::left-arrow ::right-arrow 子控件控制。

警告:如果仅仅设置一个QToolButton的背景色,除非你设置border属性为某值,否则背景色不会生效。这是因为,默认的时候QToolButton绘制一个正框正好完全覆盖背景色。

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

示例:QToolButton定制(分为三种情况)

第一种: 不存在菜单,则可以直接参照QPushButton来定制QToolButton。

第二种: 如果有菜单,菜单模式设置为QToolButton::DelayedPopup或者QToolButton::instantPopup(让我们统一归为非按钮弹出菜单吧)。这种情况,可直接参照带menu的QPushButton,主要是参照menu-indicator。

第三种: 当菜单模式QToolButton::popupMode设置为

QToolButton::MenuButtonPopup 时,参照以下示例:

图片.png

QToolBox

窗口部件

样式表使用方式

QToolBox

图片.png

支持盒模式。

每个不同的tab页面使用 ::tab 进行控制。

tabs支持 :only-one :first :last :middle :previous-selected :next-selected :selected 状态。

示例:QToolBox定制

图片.png

QToolTip

窗口部件

样式表使用方式

QToolTip

支持盒模式。

opacity属性控制tooltip的不透明度,1.0为完全不透明,0.0为透明。

属性: opacity*

属性类型:Number

示例:QToolTip定制

图片.png

QTreeView

窗口部件

样式表使用方式

QTreeView

支持盒模式。

当alternating row colors属性设置为允许时,交替颜色可通过属性 alternate-background-color 控制。

被选中的内容部分的前景色和背景需要通过属性 selection-color selection-background-color 控制。

选择的行为可以在这里通过属性 show-decoration-selected 属性控制。

树分支科室使用 ::branch 控制,拥有 :open :closed :has-sibling :has-children 状态。

使用 ::item 精确控制内容项。

背景可滚动,可参照 QAbstractScrollArea 窗口部件

示例:QTreeView定制

允许交替颜色时候可控制交替颜色

精确控制项

控制分支效果

图片.png

图片.png

image

image

image

QTreeWidget(查看QTreeView)

窗口部件

样式表使用方式

QTreeWidget

查看QTreeView

QWidget

窗口部件

样式表使用方式

QWidget

仅支持 background background-clip background-origin 属性。 注意: 这是直接设置QWidget背景图片等失败的原因,解决方法如下重写paintEvent)。

如果其子类,需要支持其他除以上三种的其他属性,需要重写paintEvent代码。

1. void CustomWidget::paintEvent(QPaintEvent *)
3. QStyleOption opt;
4. opt.init(this);
5. QPainter p(this);
6. style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
7. }

以上的代码生效stylesheet,对其他操作没有影响。

警告: 必须添加 Q_OBJECT 宏。

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

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

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