Qt4.7文档翻译:Qt样式单参考,Qt Style Sheets Reference(超长,超全)

内容目录

Qt样式单参考

可进行样式设置的部件列表

属性列表

图标列表

属性类型列表

伪状态列表

子控件列表

 

Qt样式单参考

Qt样式单支持各种属性、伪状态和子控件,这样使得妳能够自行设计部件的外观。

可进行样式设置的部件列表

下表列出的是可使用样式单来自定义其外观的Qt 部件:

部件

如何设置样式

QAbstractScrollArea

支持盒状模型。

QAbstractScrollArea 的所有继承类,包括 QTextEdit QAbstractItemView (所有的条目视图(item view)类),都支持可滚动的背景,使用 background-attachment 来设置是否滚动。将background-attachment 设置成fixed的话,就会使得背景图片(background-image)不随视口(viewport)而滚动。如果将background-attachment 设置成scroll,那么在移动滚动条时,背景图片也会移动。

参考自定义QAbstractScrollArea的示例。

QCheckBox

支持盒状模型。选中状态的指示器可使用 ::indicator 子控件(subcontrol)来进行样式设置。默认情况下,指示器是放在部件的内容(Contents)区域的左(Left)上(Top)角。

spacing 属性控制的是选中状态指示器与文字之间的空隙。

参考自定义QCheckBox示例。

QColumnView

可使用 image 属性来对网格(grip)进行样式设置。箭头指示器(arrow indicators)可使用 ::left-arrow 和 ::right-arrow 子控件来进行样式设置。

QComboBox

组合框周围的框架(frame)可使用盒状模型来进行样式设置。下拉按钮可使用 ::drop-down 子控件来进行样式设置。默认情况下,下拉按钮是放置在部件的填充(padding)区域的右上角。下拉按钮中的箭头标志可使用 ::down-arrow 子控件来进行样式设置。默认情况下,箭头是放置在下拉按钮子控件的内容区域的中央。

参考自定义QComboBox示例。

QDateEdit

参考 QSpinBox 

QDateTimeEdit

参考 QSpinBox 

QDialog

只支持 background 、 background-clip 和 background-origin 属性。

警告:确保妳在自定义的部件中定义咯Q_OBJECT宏。

QDialogButtonBox

按钮的布局方式可使用 button-layout 属性来改变。

QDockWidget

在停靠状态(docked),支持对标题栏和标题栏的按钮进行样式设置。

停靠部件的边框(border)可使用 border 属性来进行样式设置。::title 子控件可用来对标题栏进行样式设置。关闭按钮和漂浮按钮可分别使用 ::close-button 和 ::float-button 来相对于(with respect to) ::title 子控件进行位置设置。如果标题栏是竖直的,那么就会存在(is set) :vertical 伪类。另外,取决于QDockWidget::DockWidgetFeature的值, :closable 、 :floatable和 :movable 伪状态也可能存在。

注意:使用QMainWindow::separator 来对改变大小的手柄(resize handle)进行样式设置。

警告:在 QDockWidget 不处于停靠状态(undocked)时,样式单无效,∵Qt 在未停靠状态会使用原生(native)的顶级窗口。

参考自定义QDockWidget示例。

QDoubleSpinBox

参考 QSpinBox 

QFrame

支持盒状模型。

从4.3 开始,对一個 QLabel 设置样式单的话,會自动将QFrame::frameStyle 属性设置成QFrame::StyledPanel。

参考自定义QFrame示例。

QGroupBox

支持盒状模型。标题可使用 ::title 子控件来进行样式设置。默认情况下,标题是按照QGroupBox::textAlignment 来放置位置的。

如果是一個可选中(checkable)的 QGroupBox 的话,那么标题也包含选中状态指示器。指示器可使用 ::indicator 子控件来进行样式设置。 spacing 属性可用来控制文字与指示器之间的间隔。

参考自定义QGroupBox示例。

QHeaderView

支持盒状模型。表头视图(header view)的各个节区(sections)是使用 ::section 子控件来进行样式设置的。section子控件支持:middle 、 :first 、 :last 、 :only-one 、 :next-selected :previous-selected 、 :selected 和 :checked 伪状态。

排序指示器可使用 ::up-arrow 和 ::down-arrow 子控件来进行样式设置。

参考自定义QHeaderView示例。

QLabel

支持盒状模型。不支持 :hover 伪状态。

从4.3 开始,对一個 QLabel 设置样式单的话,會自动将QFrame::frameStyle 属性设置成QFrame::StyledPanel。

参考自定义QFrame示例( QLabel 继承自 QFrame )。

QLineEdit

支持盒状模型。

选中的项目(item)的颜色和背景分别是使用selection- color selection-background-color 来进行样式设置的。

密码字符可使用 lineedit-password-character 属性来进行样式设置。

参考自定义QLineEdit示例。

QListView

支持盒状模型。如果交替改变行颜色(alternating row colors)被启用的话,那么交替的颜色(alternating colors)可使用alternate-background-color 属性来进行样式设置。

选中的项目(item)的颜色和背景分别是使用selection- color selection-background-color 来进行样式设置的。

选择行为是由 show-decoration-selected 属性来进行控制的。

使用 ::item 子控件来对 QListView 中的条目进行更精细的控制。

参考 QAbsractScrollArea 以了解对可滚动的背景的样式设置。

参考自定义QListView示例。

QListWidget

参考 QListView 

QMainWindow

支持对分隔符进行样式设置。

在 QMainWindow 中使用 QDockWidget 时产生的分隔符是使用::separator 子控件来进行样式设置的。

参考自定义QMainWindow示例。

QMenu

支持盒状模型。

单个的条目是使用 ::item 子控件来进行样式设置的。除咯通常的伪状态以外,item子控件还支持 :selected 、 :default :exclusive 和 non-exclusive 伪状态。

可选中的菜单条目的指示器是通过 ::indicator 子控件来进行样式设置的。

分隔符是使用 ::separator 子控件来进行样式设置的。

对于有子菜单的条目,它们的箭头标记是使用 right-arrow left-arrow 来进行样式设置的。

滚动器(scroller)是使用 ::scroller 来进行样式设置的。

分离菜单(tear-off)是使用 ::tearoff 来进行样式设置的。

参考自定义QMenu示例。

QMenuBar

支持盒状模型。 spacing 属性指明菜单条目之间的空隙大小。单个的条目是使用 ::item 子控件来进行样式设置的。

警告:在Qt/Mac 平台上,菜单条通常是嵌入系统的全局菜单条中的。在这种情况下,样式单无效。

参考自定义QMenuBar示例。

QMessageBox

messagebox-text-interaction-flags 属性可用来改变消息框中的文字的交互模式。

QProgressBar

支持盒状模型。进度条的进度块(chunks)可使用 ::chunk 子控件来进行样式设置。进度块显示在部件的内容区域中。

如果进度条显示文字,那么就使用 text-align 属性来设置文字的位置。

不确定的(Indeterminate)进度条会有 :indeterminate 伪状态。

参考自定义QProgressBar示例。

QPushButton

支持盒状模型。支持 :default 、 :flat 、 :checked 伪状态。

对于包含有一個菜单的 QPushButton ,其菜单指示器是使用::menu-indicator 子控件来进行样式设置的。可选中的按钮的外观可使用 :open 和 :closed 伪状态来进行样式设置。

警告:如果妳只为 QPushButton 设置一个背景色(background-color)的话,那個背景可能不会显示出来,除非妳将边框(border)属性设置成某個值。勒是∵,在默认情况下,QPushButton 会绘制一個原始的(native)边框,它會完全覆盖(overlaps)背景色。例如,

QPushButton { border: none; }

参考自定义QPushButton示例。

QRadioButton

支持盒状模型。选中指示器可使用 ::indicator 子控件来进行样式设置。默认情况下,指示器被放置在部件的内容区域的左上角。

spacing 属性指明选中指示器与文字之间的空隙大小。

参考自定义QRadioButton示例。

QScrollBar

支持盒状模型。目前认为滑块在其中滑动的那个槽(groove)就是这个部件的内容区域。 QScrollBar 的广度(extent)(也就是说,宽度或高度,取决于方向)是使用 width 或 height 属性来设置的。要确定方向的话,就使用 :horizontal 和 :vertical 伪状态。

滑块可使用 ::handle 子控件来进行样式设置。设置 min-width min-height 可按照方向来对滑块提供尺寸的限制。

(以下部分的原文写得很糟糕,本座按照理解修改咯某些语意,有不清楚的地方最好自行试验)

::add-line 子控件可用来对那个增加一行的按钮进行样式设置。默认情况下,加一行(add-line)子控件被放置在部件的边框(Border)区域的右下角(原文意思是右上角)。取决于部件的方向,其中的箭头(前面这个主语从句,原文没有)可能是 ::right-arrow 或 ::down-arrow 。默认情况下,箭头会被放置在加一行子控件的内容区域的中心。

::sub-line 子控件可用来对那个减少一行的按钮进行样式设置。默认情况下,减一行(sub-line)子控件被放置在部件的边框区域的左上角(原文是右下角)。取决于部件的方向,其中的箭头(前面这个主语从句,原文没有)可能是 ::left-arrow 或 ::up-arrow 。默认情况下,箭头会被放置在减一行子控件的内容区域的中心。

::sub-page 子控件可用来对那个可起到减一页作用的滑块区域进行样式设置。 ::add-page 子控件可用来对那个可起到加一页作用的滑块区域进行样式设置。

参考自定义QScrollBar示例。

QSizeGrip

支持 width 、 height 和 image 属性。

参考自定义QSizeGrip示例。

QSlider

支持盒状模型。对于水平滑动器,必须提供 min-width 和 height属性。对于竖直滑动器,必须提供 min-height 和 width 属性。

滑动器的滑槽是使用 ::groove 来进行样式设置的。默认情况下,滑槽被放置在部件的内容区域中。滑动器的滑块(thumb)是使用::handle 子控件来进行样式设置的。这个子控件就在滑槽的内容区域中移动。

参考自定义QSlider示例。

QSpinBox

旋转框(spin box)的框架(frame)可使用盒状模型来进行样式设置。

向上按钮和箭头可使用 ::up-button 和 ::up-arrow 子控件来进行样式设置。默认情况下,向上按钮被放置在部件的填充区域的右上角。如果没有设置显式的尺寸,那么,它會占据它的参考(reference)区域的一半高度。向上箭头被放置在向上按钮的内容区域的中心。

向下按钮和箭头可使用 ::down-button 和 ::down-arrow 子控件来进行样式设置。默认情况下,向下按钮被放置在部件的填充区域的右下角。如果没有设置显式的尺寸,那么,它會占据它的参考(reference)区域的一半高度。向下箭头被放置在向下按钮的内容区域的中心。

参考自定义QSpinBox示例。

QSplitter

支持盒状模型。分割器(splitter)的手柄是使用 ::handle 子控件进行样式设置的。

参考自定义QSplitter示例。

QStatusBar

只支持 background 属性。单个条目的框架可使用 ::item 子控件来进行样式设置。

参考自定义QStatusBar示例。

QTabBar

单个标签(tabs)可使用 ::tab 子控件来进行样式设置。关闭按钮可使用 ::close-button 子控件进行样式设置。标签支持 :only-one、 :first 、 :last 、 :middle 、 :previous--selected :next-selected 、 :selected 伪状态。

取决于标签组的方向,會有 :top 、 :left 、 :right 、 :bottom伪状态。

处于选中状态的重叠的标签是通过使用负数的边距(margins)或使用absolute(绝对)位置模式来创建的。

QTabBar 的分离(tear)指示器是使用 ::tear 子控件来进行样式设置的。

QTabBar 用两个QToolButtons 来表示它的滚动器,它们可使用QTabBar QToolButton选择器来进行样式设置。使用 ::scroller子控件来指定滚动按钮的宽度。

QTabBar 中的标签的对齐方式是使用 alignment 属性来进行设置的。

警告:要改变 QTabWidget 中的 QTabBar 的位置,就使用 tab-bar子控件(并且设置子控件位置(subcontrol-position))。

参考自定义QTabBar示例。

QTabWidget

标签部件的框架是使用 ::pane 子控件来进行样式设置的。左边角和右边角分别是使用 ::left-corner 和 ::right-corner 来进行样式设置的。标签条的位置是使用 ::tab-bar 子控件来控制的。

默认情况下, QTabWidget 的子控件的位置是按照 QWindowsStyle风格来确定的。要想将 QTabBar 放置在中央的位置,就设置tab-bar 子控件的subcontrol-position。

取决于标签组的方向,會有 :top 、 :left 、 :right 、 :bottom伪状态。

参考自定义QTabWidget示例。

QTableView

支持盒状模型。如果交替改变行颜色(alternating row colors)被启用的话,那么交替的颜色(alternating colors)可使用alternate-background-color 属性来进行样式设置。

选中的项目(item)的颜色和背景分别是使用selection- color selection-background-color 来进行样式设置的。

QTableView 中的边角(corner)部件是一個 QAbstractButton ,可使用" QTableView QTableCornerButton::section"选择器来进行样式设置。

警告:如果妳只为QTableCornerButton 设置背景色的话,背景可能不会显示出来,除非妳将边框属性设置成某個值。这是∵,默认情况下,QTableCornerButton會绘制一個原始的边框,它會完全挡住背景色。

网格(grid)的颜色可使用 gridline-color 属性来进行设置。

参考 QAbsractScrollArea 以了解如何设置可滚动的背景。

参考自定义QTableView示例。

QTableWidget

参考 QTableView 

QTextEdit

支持盒状模型。

选中的文字的颜色和背景色可分别使用 selection-color selection-background-color 来进行样式设置。

参考 QAbsractScrollArea 以了解如何设置可滚动的背景。

QTimeEdit

参考 QSpinBox 

QToolBar

支持盒状模型。

取决于工具条所在的区域(停靠方向),可能會存在 :top 、 :left、 :right 、 :bottom 伪状态。

:first 、 :last 、 :middle 、 :only-one 伪状态能够指示这個工具条在一個线性(line)组(group)(参考QStyleOptionToolBar::positionWithinLine)中的位置。

QToolBar 的分隔符是使用 ::separator 子控件来进行样式设置的。

手柄(handle)(用来移动工具条)是使用 ::handle 子控件来进行样式设置的。

参考自定义QToolBar示例。

QToolButton

支持盒状模型。

如果这個 QToolButton 拥有一個菜单的话,那么 ::menu-indicator子控件可用来对菜单指示器进行样式设置。默认情况下,菜单指示器(menu-indicator)被放置在这個部件的填充区域的右下角。

如果这個 QToolButton 是处于QToolButton::MenuButtonPopup模式,那么 ::menu-button 子控件就会用来绘制菜单按钮。 ::menu-arrow 子控件被用来在菜单按钮里面绘制菜单箭头。默认情况下,它会位于菜单按钮子控件的内容区域的中心。

如果这個 QToolButton 显示箭头的话,那么 ::up-arrow ::down-arrow 、::left- arrow和 ::right-arrow 子控件都会用上。

警告:如果妳只为 QToolButton 设置背景色的话,背景可能不会显示出来,除非妳将边框属性设置成某個值。这是∵,默认情况下,QToolButton 會绘制一個原始的边框,它會完全挡住背景色。例如,

QToolButton { border: none; }

参考自定义QToolButton示例。

QToolBox

支持盒状模型。

单个标签可使用 ::tab 子控件来进行样式设置。标签支持 :only-one 、 :first 、 :last 、 :middle 、 :previous-selected :next-selected 、 :selected 伪状态。

QToolTip

支持盒状模型。 opacity 属性控制工具提示(tooltip)的透明度。

参考自定义QFrame示例( QToolTip 是 QFrame )。

QTreeView

支持盒状模型。如果交替改变行颜色(alternating row colors)被启用的话,那么交替的颜色(alternating colors)可使用alternate-background-color 属性来进行样式设置。

选中的项目(item)的颜色和背景分别是使用selection- color selection-background-color 来进行样式设置的。

选择行为是由 show-decoration-selected 属性来进行控制的。

树型视图的分支(branches)可使用 ::branch 子控件来进行样式设置。::branch子控件支持 :open 、 :closed 、 :has-sibling :has-children 伪状态。

使用 ::item 子控件来对 QTreeView 中的条目进行更精细的控制。

参考 QAbsractScrollArea 以了解如何设置可滚动的背景。

参考自定义QTreeView示例以了解如何对分支进行样式设置。

QTreeWidget

参考 QTreeView 

QWidget

只支持 background 、 background-clip 和 background-origin 属性。

如果妳从 QWidget 继承一個子类,那么妳需要为妳的自定义QWidget 提供以下的一個绘制事件(paintEvent):

void CustomWidget :: paintEvent( QPaintEvent )

{

QStyleOption opt;

opt init( this );

QPainter p( this );

style() -> drawPrimitive( QStyle :: PE_Widget opt this );

}

如果没有设置样式单的话,以上的代码不起任何作用(no-operation)。

警告:确保为妳的自定义部件(widget)定义咯Q_OBJECT宏。

属性列表

下面的表格列出咯由Qt 样式单支持的所有属性。它们的值可按照 属性类型 来进行赋值。除非另外有说明,否则以下的属性对所有部件都有用。带有星号*的属性是Qt 特有的,在CSS2 或CSS3 中没有等价属性。

属性

类型

说明

alternate-background-color

Brush

在 QAbstractItemView 子类中使用的交替背景色。

如果这個属性没有设置的话,那么默认值就是为调色板(palette)的AlternateBase角色(role)设置的值。

示例:

QTreeView {

alternate-

background: yellow;

}

参考 background 和 selection-background-color 

background

Background

用来设置背景的省写(Shorthand)方式。等价于设置background-color、background-image、background-repeat和/或background-position。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QDialog QFrame 、 QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton QSplitter 、 QTextEdit 、 QToolTip 和普通的 QWidget 支持。

示例:

QTextEdit { background: yellow }

通常,有必要设置一個类似Qt::BrushStyle中的样式的填充模式。你可以为Qt::SolidPattern、Qt::RadialGradientPattern、Qt::LinearGradientPattern和Qt::ConicalGradientPattern使用背景色(background-color)属性。其它模式也可以很简单地通过创建一個包含那种模式的背景图片的方式来实现。

示例:

QLabel {

background-image: url(dense6pattern.png);

background-repeat: repeat-xy;

}

参考 background-origin 、selection-background- color、 background-clip 、 background-attachment alternate-background-color 

background-color

Brush

为这個部件使用的背景颜色。

示例:

QLabel { font-size: 10pt; font-family: "DejaVu Sans Mono"; padding: 0cm; border-style: none; background-color: rgb(246, 246, 246);">QLineEdit { ">

background-image

Url

为这個部件使用的背景图片。图片的半透明部分会露出背景颜色(background-color)。

示例:

QFrame { background-image: url(:/images/hydro.png) }

background-repeat

Repeat

在填充background-origin矩形的过程中,背景图片是否要重要,以及如何重复。

如果没有设置的话,则背景图片在两个方向上都重复(repeat)。

示例:

QFrame {

background: white url(:/images/ring.png);

background-repeat: repeat-y;

background-position: left;

}

background-position

Alignment

背景图片在background-origin矩形中的对齐方式。

没有设置的话,则对齐方式是top left(左上)。

Example:

QFrame {

background: url(:/images/footer.png);

background-position: bottom left;

}

background-attachment

Attachment

确定在一個 QAbstractScrollArea 中的背景图片是否会随视口(viewport)滚动。默认情况下,背景图片会随视口滚动。

示例:

QTextEdit {

background-image: url("leaves.png");

background-attachment: fixed;

}

参考 background 

background-clip

Origin

在部件的矩形区域中绘制背景(background)的区域。

这個属性指定的是background-color和background-image在其中被修剪(clipped)的矩形区域。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QDialog QFrame 、 QGroupBox 、 QLabel 、 QPushButton 、 QRadioButton 、 QSplitter 、 QTextEdit 、 QToolTip 和普通的 QWidget 支持。

如果这個属性没有设置的话,则默认值是border。

示例:

QFrame {

background-image: url(:/images/header.png);

background-position: top left;

background-origin: content;

background-clip: padding;

}

参考 background 、 background-origin 盒状模型(The Box Model)。

background-origin

Origin

部件的背景矩形区域,与background-position和background-image结合使用。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QDialog QFrame 、 QGroupBox 、 QLabel 、 QPushButton 、 QRadioButton 、 QSplitter 、 QTextEdit 、 QToolTip 和普通的 QWidget 支持。

如果这個属性没有设置的话,则默认值是padding。

示例:

QFrame {

background-image: url(:/images/header.png);

background-position: top left;

background-origin: content;

}

参考 background 盒状模型。

border

Border

用来设置部件的边框的省写方式。等价于设置border-color、border-style和/或border-width。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 、 QToolTip 和普通 QWidget 支持。

示例:

QLineEdit { border: 1px solid white }

border-top

Border

用来设置部件的顶部边框的省写方式。等价于设置border-top-color、border-top-style和/或border-top-width。

border-right

Border

用来设置部件的右侧边框的省写方式。等价于设置border-right-color、border-right-style和/或border-right-width。

 

border-bottom

Border

用来设置部件的底部边框的省写方式。等价于设置border-bottom-color、border-bottom-style和/或border-bottom-width。

border-left

Border

用来设置部件的左侧边框的省写方式。等价于设置border-left-color、border-left-style和/或border-left-width。

border-color

Box Colors

边框的所有边的颜色。等价于指定border-top-color、border-right-color、border-bottom-color和border-left-color。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 、 QToolTip 和普通 QWidget 支持。

如果这個属性没有指定,则默认是 color (也就是说,部件的前景色)。

示例:

QLineEdit {

border-width: 1px;

border-style: solid;

border-color: white;

}

参考 border-style 、 border-width 、 border-image 盒状模型。

border-top-color

Brush

边框的顶部边线的颜色。

border-right-color

Brush

边框的右侧边线的颜色。

border-bottom-color

Brush

边框的底部边线的颜色。

border-left-color

Brush

边框的左侧边线的颜色。

border-image

Border Image

用来填充边框的图片。图片被切成9块,并且在必要的时候还会被拉伸(stretched)。参考 Border Image 以了解细节。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

参考 border-color 、 border-style 、 border-width 盒状模型。

border-radius

Radius

边框的边角的半径。等价于指定border-top-left-radius、border-top-right-radius、border-bottom-right-radius和border-bottom-left-radius。

边框半径(border-radius)会修剪(clips)这個元素的背景( background )。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

如果这個属性没有指定的话,那么它的默认值是0。

示例:

QLineEdit {

border-width: 1px;

border-style: solid;

border-radius: 4px;

}

参考 border-width 盒状模型。

 

border-top-left-radius

Radius

边框的左上角的半径。

border-top-right-radius

Radius

边框的右上角的半径。

border-bottom-right-radius

Radius

边框的右下角的半径。将这個属性设置成正数的值就会产生圆角。

border-bottom-left-radius

Radius

边框的左下角的半径。将这個属性设置成正数的值就会产生圆角。

border-style

Border Style

边框的所有边线的风格。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

如果这個属性没有指定,则默认值是无(none)。

示例:

QLineEdit {

border-width: 1px;

border-style: solid;

border-color: blue;

}

参考 border-color 、 border-style 、 border-image 盒状模型。

 

border-top-style

BorderStyle

边框的顶部边线的风格。

border-right-style

Border Style

边框的右侧边线的风格。

border-bottom-style

Border Style

边框的底部边线的风格。

border-left-style

Border Style

边框的左侧边线的风格。

border-width

Box Lengths

边框的宽度。等价于设置border-top-width、border-right-width、border-bottom-width和border-left-width。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

示例:

QLineEdit {

border-width: 2px;

border-style: solid;

border-color: darkblue;

}

参考 border-color 、 border-radius 、 border-style 、 border-image 盒状模型。

 

border-top-width

Length

边框的顶部边线的宽度。

border-right-width

Length

边框的右侧边线的宽度。

border-bottom-width

Length

边框的底部边线的宽度。

border-left-width

Length

边框的左侧边线的宽度。

bottom

Length

如果 position (位置)是relative(相对的)(默认值),则将一个子控件( subcontrol )向上移动一定的位置;在那种情况下,指定bottom:  y 等价于指定 top : - y 。

如果 position absolute(绝对的),则bottom属性指定的是这个子控件的底部边线相对于亲代(parent)部件的底部边线的位置(参考 subcontrol-origin )。

示例:

QSpinBox::down-button { bottom: 2px }

参考 left 、 right 和 top 

button-layout

Number

在一個 QDialogButtonBox 或 QMessageBox 中的按钮的布局。可选值是0 (WinLayout)、1 (MacLayout)、2 (KdeLayout)和3 (GnomeLayout)。

如果这個属性没有指定的话,则默认值是由当前风格中的SH_DialogButtonLayout风格提示来确定的。

示例:

* { button-layout: 2 }

color

Brush

用来渲染文字的颜色。

所有支持(respect)QWidget::palette的部件都支持这個属性。

如果这個属性没有设置的话,则默认值是为这個部件的调色板设置的QWidget::foregroundRole 的值(通常是黑色)。

示例:

QPushButton { color: red }

参考 background 和 selection-color 

 

dialogbuttonbox-buttons-have-icons

Boolean

QDialogButtonBox 中的按钮是否要显示图标。

如果这個属性设置为1,则 QDialogButtonBox 中的按钮显示图标;如果设置为0,则不显示图标。

参考List of Icons (图标列表)小节以了解如何设置图标。

QDialogButtonBox { dialogbuttonbox-buttons-have-icons: 1; }

注意:定义咯这個属性的样式必须在 QDialogButtonBox 被创建之前就应用;也就是说妳必须将样式应用到它的亲代部件或者直接应用到程序本身。

font

Font

用来设置文字的字体的省写方式。等价于设置font-family、font-size、font-style和/或font-weight。

所有支持QWidget::font的部件都支持这個属性。

如果没有设置,则默认值是QWidget::font。

示例:

QCheckBox { font: bold italic large "Times New Roman" }

font-family

String

字体族(family)。

示例:

QCheckBox { font-family: "New Century Schoolbook" }

font-size

Font Size

字体大小。在这個版本的Qt 中,只支持pt 和px 单位。

示例:

QTextEdit { font-size: 12px }

font-style

Font Style

字体风格。

示例:

QTextEdit { font-style: italic }

 

font-weight

Font Weight

字体的重量(weight)。

gridline-color *

Color

在 QTableView 中的网格线的颜色。

如果没有设置的话,则默认值是当前风格中为SH_Table_GridLineColor样式提示指定的值。

示例:

* { gridline-color: gray }

height

Length

一個子控件( subcontrol )(在某些情况下,是部件)的高度。

如果这個属性没有设置,则默认值取决于子控件/部件本身及当前的风格。

警告:除非另有说明,否则这个属性对部件无效。如果妳想要某個部件拥有固定的高度,则将 min-height 和 max-height 设置成同一個值。

示例:

QSpinBox::down-button { height: 10px }

参考 width 

icon-size

Length

某個部件中的图标的宽度和高度。

以下部件的图标尺寸可使用这個属性来设置。

  • QCheckBox

  • QListView

  • QPushButton

  • QRadioButton

  • QTabBar

  • QToolBar

  • QToolBox

  • QTreeView

image *

Url +

被绘制到一個子控件( subcontrol )的内容区域的图片。

image(图片)属性接受一组 Url (统一资源定位器)或一個svg(可缩放矢量图)。实际绘制的图片是由与 QIcon相同的算法来确定的,(也就是说)图片绝不会被放大但必要的时候一定会缩小。如果指定咯一個svg,则图片会缩放到内容区域的大小。

在子控件上设置图片会隐式地设置那個子控件的宽度和高度(除非图片是一個SVG)。

在Qt 4.3 和以后的版本中,可使用 image-position 来指定图片在矩形区域中的对齐方式。

这個属性是只为子控件( subcontrol )设计的--我们不在其它元素中支持它。

警告:需要有QIcon SVG 插件才能渲染SVG 图片。

示例:

/* 隐式地将down-button 的大小设置成spindown.png 的大小 */

QSpinBox::down-button { image: url(:/images/spindown.png) }

image-position

alignme nt

在Qt 4.3 及以后的版本中,图片的位置可使用相对定位和绝对定位来设置。

left

Length

如果 position (位置)是relative(相对的)(默认值),则将某個 subcontrol (子控件)向右移动一定距离。

如果 position absolute(绝对的),则left属性指定的是这個子控件的左边线与亲代部件的左边线的相对位置(参考 subcontrol-origin )。

如果没有设置,则默认值是0。

示例:

QSpinBox::down-button { left: 2px }

参考 right 、 top 和 bottom 

lineedit-password-character*

Number

以Unicode(统一码)指定的 QLineEdit 密码字符。

如果这個属性没有设置,则默认值是由当前风格中的SH_LineEdit_PasswordCharacter样式提示确定的。

示例:

* { lineedit-password-character: 9679 }

margin

Box Lengths

部件的边距(margins)。等价于指定margin-top、margin-right、margin-bottom和margin-left。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

如果没有设置的话,默认为0。

示例:

QLineEdit { margin: 2px }

参考 padding 、 spacing 盒状模型。

margin-top

Length

部件的顶部边距。

margin-right

Length

部件的右侧边距。

margin-bottom

Length

部件的底部边距。

margin-left

Length

部件的左侧边距。

max-height

Length

这個部件或者其子控件的最大高度。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSizeGrip QSpinBox 、 QSplitter 、 QStatusBar 、 QTextEdit 和 QToolTip 支持。

这個值是相对于盒状模型中的内容区域的。

示例:

QSpinBox { max-height: 24px }

参考 max-width 

max-width

Length

这個部件或者其子控件的最大宽度。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSizeGrip QSpinBox 、 QSplitter 、 QStatusBar 、 QTextEdit 和 QToolTip 支持。

这個值是相对于盒状模型中的内容区域的。

示例:

QComboBox { max-width: 72px }

参考 max-height 

messagebox-text-interaction-flags*

Number

在消息框中的文字的交互行为。可能取的值取决于Qt::TextInteractionFlags。

如果属性没有设置的话,则默认值是由当前风格中的SH_MessageBox_TextInteractionFlags样式提示确定的。

示例:

QMessageBox { messagebox-text-interaction-flags: 5 }

min-height

Length

这個部件或者其子控件的最小高度。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSizeGrip QSpinBox 、 QSplitter 、 QStatusBar 、 QTextEdit 和 QToolTip 支持。

如果这個属性没有指定的话,则最小高度是基于这個部件的内容和样式来继承的。

这個值是相对于盒状模型中的内容区域的。

示例:

QComboBox { min-height: 24px }

参考 min-width 

min-width

Length

这個部件或者其子控件的最小宽度。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、Q LineEdit、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSizeGrip QSpinBox 、 QSplitter 、 QStatusBar 、 QTextEdit 和 QToolTip 支持。

如果这個属性没有指定的话,则最小宽度是基于这個部件的内容和样式来继承的。

这個值是相对于盒状模型中的内容区域的。

示例:

QComboBox { min-width: 72px }

参考 min-height 

opacity*

Number

某個部件的透明度。取值范围从0 (透明)到255 (不透明)。当前只被工具提示( tooltips )支持。

如果这個属性没有设置,则默认值由当前风格中的SH_ToolTipLabel_Opacity样式提示确定。

示例:

QToolTip { opacity: 223 }

padding

Box Lengths

这個部件的填充宽度(padding)。等价于设置padding-top、padding-right、padding-bottom和padding-left。

这個属性被 QAbstractItemView 子类、 QAbstractSpinBox 子类、 QCheckBox 、 QComboBox 、 QFrame QGroupBox 、 QLabel 、 QLineEdit 、 QMenu 、 QMenuBar 、 QPushButton 、 QRadioButton 、 QSplitter QTextEdit 和 QToolTip 支持。

如果没有设置的话,默认为0。

示例:

QLineEdit { padding: 3px }

参考 margin 、 spacing 盒状模型。

padding-top

Length

这個部件的顶部填充距离。

padding-right

Length

这個部件的右侧填充距离。

padding-bottom

Length

这個部件的底部填充距离。

padding-left

Length

这個部件的左侧填充距离。

paint-alternating-row-colors-for-empty-area

bool

QTreeView 是否要为空白区域(没有条目的区域)绘制交替行颜色

position

relative 
absolute

用 left 、 right 、 top 和 bottom 指定的偏移值是相对的还是绝对的坐标。

如果没有设置,则默认值是relative。

right

Length

如果 position (位置)是relative(相对的)(默认值),则将某個 subcontrol (子控件)向左移动一定距离;在那种情况下,指定right:  x 就等价于指定 left : - x 。

如果 position absolute(绝对的),则right属性指定的是这個子控件的右边线相对于亲代部件的右边线的位置(参考 subcontrol-origin )。

示例:

QSpinBox::down-button { right: 2px }

参考 left 、 top 和 bottom 

selection-background-color*

Brush

选中的文字或条目的背景。

所有支持QWidget::palette并且显示选中文字的部件都支持这個属性。如果没有设置,则默认值是为调色板的Highlight角色设置的值。

示例:

QTextEdit { selection- font-size: 12pt; font-family: "Liberation Serif"; text-indent: 0cm;">参考 selection-color 和 background 

selection-color*

Brush

选中的文字或条目的前景。

所有支持QWidget::palette并且显示选中文字的部件都支持这個属性。

如果没有设置,则默认值是为调色板的HighlightedText角色设置的值。

示例:

QTextEdit { selection-color: white }

参考 selection-background-color 和 color 

show-decoration-selected*

Boolean

控制的是在一個 QListView 中的选中区域是要覆盖整个行还是只覆盖文字的区域。

如果没有设置,则默认值是由当前风格中的SH_ItemView_ShowDecorationSelected样式提示确定的。

示例:

* { show-decoration-selected: 1 }

spacing*

Length

这個部件内部的间隔(spacing)。

这個属性被 QCheckBox 、可选中的 QGroupBox 、 QMenuBar 和 QRadioButton 支持。

如果没有指定,则默认值取决于部件本身及当前风格。

示例:

QMenuBar { spacing: 10 }

参考 padding 和 margin 

subcontrol-origin*

Origin

这個 subcontrol (子控件)在亲代元素中的根源(origin)矩形。

如果没有指定,则默认值为padding。

示例:

QSpinBox::up-button {

image: url(:/images/spinup.png);

subcontrol-origin: content;

subcontrol-position: right top;

}

参考 subcontrol-position 

 

subcontrol-position*

Alignment

这個子控件( subcontrol )在由 subcontrol-origin 确定的根源矩形中的对齐方式。

如果没有设置的话,则默认值取决于子控件本身。

示例:

QSpinBox::down-button {

image: url(:/images/spindown.png);

subcontrol-origin: padding;

subcontrol-position: right bottom;

}

参考 subcontrol-origin 

text-align

Alignment

文字和图标在这個部件的内容中的对齐方式。

如果没有设置的话,则默认值取决于原生(native)风格。

示例:

QPushButton {

text-align: left;

}

当前只有 QPushButton 和 QProgressBar 支持这個属性。

text-decoration

none 
underline 
overline 
line-through

附加的文字效果

top

Length

如果 position relative(相对的)(默认值),则将一個 subcontrol (子控件)向下移动指定距离。

如果 position absolute(绝对的),则top属性指定的是这個子控件的顶部边线相对于亲代部件的顶部边线的位置(参考 subcontrol-origin )。

如果没有设置的话,则默认值是0。

示例:

QSpinBox::up-button { top: 2px }

参考 left 、 right 和 bottom 

width

Length

一個 subcontrol (子控件)(或者在某些情况下会是部件)的宽度。

如果没有设置的话,则默认值取决于子控件/部件本身及当前的风格。

警告:除非另外说明,否则这個属性对于部件无效。如果妳想让某個部件具有固定的宽度,则将 min-width 和 max-width 设置成相同的值。

示例:

QSpinBox::up-button { width: 12px }

参考 height 

图标列表

在Qt 中使用的图标可使用以下属性来进行自定义。这個小节中列出的每个属性的类型都是 Icon 

注意,要想让 QDialogButtonBox 中的按钮里出现图标的话,妳需要将dialogbuttonbox-buttons-have-icons 属性设置成true(真)。并且,要对图标的尺寸进行自定义的话,则使用icon-size 属性。

 

名字

QStyle::StandardPixmap

backward-icon

QStyle::SP_ArrowBack

cd-icon

QStyle::SP_DriveCDIcon

computer-icon

QStyle::SP_ComputerIcon

desktop-icon

QStyle::SP_DesktopIcon

dialog-apply-icon

QStyle::SP_DialogApplyButton

dialog-cancel-icon

QStyle::SP_DialogCancelButton

dialog-close-icon

QStyle::SP_DialogCloseButton

dialog-discard-icon

QStyle::SP_DialogDiscardButton

dialog-help-icon

QStyle::SP_DialogHelpButton

dialog-no-icon

QStyle::SP_DialogNoButton

dialog-ok-icon

QStyle::SP_DialogOkButton

dialog-open-icon

QStyle::SP_DialogOpenButton

dialog-reset-icon

QStyle::SP_DialogResetButton

dialog-save-icon

QStyle::SP_DialogSaveButton

dialog-yes-icon

QStyle::SP_DialogYesButton

directory-closed-icon

QStyle::SP_DirClosedIcon

directory-icon

QStyle::SP_DirIcon

directory-link-icon

QStyle::SP_DirLinkIcon

directory-open-icon

QStyle::SP_DirOpenIcon

dockwidget-close-icon

QStyle::SP_DockWidgetCloseButton

downarrow-icon

QStyle::SP_ArrowDown

dvd-icon

QStyle::SP_DriveDVDIcon

file-icon

QStyle::SP_FileIcon

file-link-icon

QStyle::SP_FileLinkIcon

filedialog-contentsview-icon

QStyle::SP_FileDialogContentsView

filedialog-detailedview-icon

QStyle::SP_FileDialogDetailedView

filedialog-end-icon

QStyle::SP_FileDialogEnd

filedialog-infoview-icon

QStyle::SP_FileDialogInfoView

filedialog-listview-icon

QStyle::SP_FileDialogListView

filedialog-new-directory-icon

QStyle::SP_FileDialogNewFolder

filedialog-parent-directory-icon

QStyle::SP_FileDialogToParent

filedialog-start-icon

QStyle::SP_FileDialogStart

floppy-icon

QStyle::SP_DriveFDIcon

forward-icon

QStyle::SP_ArrowForward

harddisk-icon

QStyle::SP_DriveHDIcon

home-icon

QStyle::SP_DirHomeIcon

leftarrow-icon

QStyle::SP_ArrowLeft

messagebox-critical-icon

QStyle::SP_MessageBoxCritical

messagebox-information-icon

QStyle::SP_MessageBoxInformation

messagebox-question-icon

QStyle::SP_MessageBoxQuestion

messagebox-warning-icon

QStyle::SP_MessageBoxWarning

network-icon

QStyle::SP_DriveNetIcon

rightarrow-icon

QStyle::SP_ArrowRight

titlebar-contexthelp-icon

QStyle::SP_TitleBarContextHelpButton

titlebar-maximize-icon

QStyle::SP_TitleBarMaxButton

titlebar-menu-icon

QStyle::SP_TitleBarMenuButton

titlebar-minimize-icon

QStyle::SP_TitleBarMinButton

titlebar-normal-icon

QStyle::SP_TitleBarNormalButton

titlebar-shade-icon

QStyle::SP_TitleBarShadeButton

titlebar-unshade-icon

QStyle::SP_TitleBarUnshadeButton

trash-icon

QStyle::SP_TrashIcon

uparrow-icon

QStyle::SP_ArrowUp

属性类型列表

下面的表格总结咯不同属性类型的语法和意义。

类型

语法

说明

Alignment

top 
bottom 
left 
right 
center }*

水平和/或竖直方向的对齐方式。

示例:

QTextEdit { background-position: bottom center }

Attachment

scroll 
fixed }*

背景图片随内容滚动或固定不动。

Background

{  Brush 
|  Url 
|  Repeat 
|  Alignment  }*

由 Brush 、 Url 、 Repeat 和 Alignment 构成的序列。

Boolean

0 | 1

True(真) (1)或false(假) (0)。

示例:

QDialog { etch-disabled-text: 1 }

Border

{  Border Style 
|  Length 
|  Brush  }*

边框属性的省写方式。

Border Image

none 
|  Url Number {4} 
(stretch |repeat){0,2}

边框图片是一個由9部分(左上、中上、右上、左中、中、右中、左下、中下、右下)构成的图片。在需要一個特定尺寸的边框时,边角部分按原样使用,而顶部、右侧、底部和左侧的部分则会被拉伸或重复以达到想要的尺寸。

参考 CSS3草稿规范 以了解细节。

 

Border Style

dashed 
dot-dash 
dot-dot-dash 
dotted 
double 
groove 
inset 
outset 
ridge 
solid 
none

指定用来绘制边框的模式。参考 CSS3草稿规范 以了解细节。

Box Colors

Brush {1,4}

1至4个 Brush ,分别指定某個盒子的顶部、右侧、底部和左侧边线。如果左侧边线颜色没有指定的话,则与右侧边线相同。如果底部边线颜色没有指定的话,则与顶部边线相同。如果右侧边线颜色没有指定的话,则与顶部边线相同。

示例:

QLabel { border-color: red }   /* red red red red */

QLabel { border-color: red blue } /* red blue red blue */

QLabel { border-color: red blue green } /* red blue green blue */

QLabel { border-color: red blue green yellow }  /* red blue green yellow */

Box Lengths

Length {1,4}

1至4个 Length ,分别指定某個盒子的顶部、右侧、底部和左侧边线。如果左侧边线长度没有指定的话,则与右侧边线相同。如果底部边线长度没有指定的话,则与顶部边线相同。如果右侧边线长度没有指定的话,则与顶部边线相同。

Examples:

QLabel { border-width: 1px }                    /* 1px 1px 1px 1px */

QLabel { border-width: 1px 2px }                /* 1px 2px 1px 2px */

QLabel { border-width: 1px 2px 3px }            /* 1px 2px 3px 2px */

QLabel { border-width: 1px 2px 3px 4px }        /* 1px 2px 3px 4px */

Brush

Color 
|  Gradient 
|  PaletteRole

指定一個颜色或一個渐变或调色板中的一個条目。

Qt4.7文档翻译:Qt样式单参考,Qt Style Sheets Reference(超长,超全)_第1张图片
 

Color

rgb( ,  ,  
rgba( ,  ,  
hsv( ,  ,  
hsva( ,  ,  
rrggbb 
Color Name

采用RGB (红、绿、蓝)或RGBA (红、绿、蓝、透明度(alpha))或HSV (色调、饱和度、值)或HSVA (色调、饱和度、值 、透明度)或命名颜色来指定一個颜色。 rgb()或rgba()语法可使用0 到255 的整数或百分比。hsv()或hsva()中的s、v 和a 的值必须在0-255 范围内;h 的值必须在 0-359 的范围。

示例:

QLabel { border-color: red }                    /* opaque red */

QLabel { border-color: #FF0000 }                /* opaque red */

QLabel { border-color: rgba(255, 0, 0, 75%) }   /* 75% opaque red */

QLabel { border-color: rgb(255, 0, 0) }         /* opaque red */

QLabel { border-color: rgb(100%, 0%, 0%) }      /* opaque red */

QLabel { border-color: hsv(60, 255, 255) }      /* opaque yellow */

QLabel { border-color: hsva(240, 255, 255, 75%) }      /* 75% blue */

注意:所允许的RGB 颜色与CSS 2.1 中允许的颜色相同,在 这里 列出。

 

Font

Font Style  |  Font Weight ){0,2}  Font Size  String

省写的字体属性。

Font Size

Length

某個字体的尺寸。

Font Style

normal 
italic 
oblique

某個字体的风格。

Font Weight

normal 
bold 
100 
200 
... 
900

某個字体的重量。

Gradient

qlineargradient 
|qradialgradient 
|qconicalgradient

指定渐变填充方式。有3种渐变填充方式:

  • Linear (线性)渐变在开始和结束点之间对颜色进行插值。

  • Radial (放射)渐变在一個围绕焦点的圆上的焦点与结束点之间对颜色进行插值。

  • Conical (圆锥)渐变回绕一個中心点进行颜色的插值。

渐变是以对象边界模式(Object Bounding Mode)指定的。想象一下一個盒子,渐变就是在这個盒子中渲染的,它的左上角是(0, 0),右下角是(1, 1)。然后,渐变参数就是以从0 到1 的百分比的方式指定的。这些值会在运行时映射(extrapolated)到实际的盒子坐标。可以指定位于盒子边界以外的值(比如说-0.6或1.8)。

警告:结束点必须以递增的顺序排列。

示例:

/* 从白色到绿色的线性渐变 */

QTextEdit {

background: qlineargradient(x1:0, y1:0, x2:1, y2:1,

stop:0 white, stop: 0.4 gray, stop:1 green)

}

 

/* 从白色到绿色的线性渐变 */

QTextEdit {

background: qlineargradient(x1:0, y1:0, x2:1, y2:1,

stop:0 white, stop: 0.4 rgba(10, 20, 30, 40), stop:1 rgb(0, 200, 230, 200))

}

 

/* 从白色到绿色的圆锥渐变  */

QTextEdit {

background: qconicalgradient(cx:0.5, cy:0.5, angle:30,

stop:0 white, stop:1 #00FF00)

}

 

/* 从白色到绿色的放射渐变  */

QTextEdit {

background: qradialgradient(cx:0, cy:0, radius: 1,

fx:0.5, fy:0.5, stop:0 white, stop:1 green)

}

Icon

Url (disabled |active | normal |selected)? (on |off)? )*

由url、QIcon::Mode和QIcon::State组成的列表。

示例:

* {

file-icon: url(file.png),

url(file_selected.png) selected;

}

 

QMessageBox {

dialogbuttonbox-buttons-have-icons: true;

dialog-ok-icon: url(ok.svg);

dialog-cancel-icon: url(cancel.png), url(grayed_cancel.png) disabled;

}

Length

Number  (px | pt |em | ex)?

一個数字加上一個单位。CSS 标准建议浏览器必须忽略 对无效值的声明。在Qt 中,指定单位是强制性(mandatory)的。为咯兼容早期版本的Qt,不带单位的数字在大部分情况下都会被当成以像素(pixels)为单位。支持的单位包括:

  • px: 像素

  • pt: 一個点的大小(也就是1/72 英寸)

  • em: 在当前字体中‘M’这個字母的宽度

  • ex: 在当前字体中‘x’这個字母的高度

Number

一個10进制整数或一個实数

示例:0、18、+127、-255、12.34、-.5, 0009。

Origin

margin 
border 
padding 
content

指明要使用4個矩形中的哪一個。

  • margin: 边距矩形。边距位于边框之外。

  • border: 边框矩形。如果绘制边框的话,就绘制在这里。

  • padding: 填充矩形。与边距不同,填充是位于边框之内的。

  • content: 内容矩形。这個矩形就是实际的内容,不包含任何的填充、边框及边距。

参考盒状模型。

PaletteRole

alternate-base 
base 
bright-text 
button 
button-text 
dark 
highlight 
highlighted-text 
light 
link 
link-visited 
mid 
midlight 
shadow 
text 
window 
window-text

这些值对应于当前部件的 QPalette (调色板)中的Color roles(颜色角色)。

示例,

QPushButton { color: palette(dark); }

 

Radius

Length {1, 2}

1至2个 Length 。如果只指定1個的话,则这個值会被用作边角处的四分之一圆的半径。如果指定咯2個的话,则第一個会被用作一個四分之一椭圆的水平半径,第二個会被用作竖直半径。

Repeat

repeat-x 
repeat-y 
repeat 
no-repeat

这個值用来指示重复模式。

  • repeat-x: 在水平方向上重复。

  • repeat-y: 在竖直方向上重复。

  • repeat: 在两个方向上都重复。

  • no-repeat: 不重复。

Url

url( filename )

filename 指的是本地磁盘上或是使用 Qt资源系统储存的一個文件的名字。设置一個图片的话,会隐式地设置那個元素的宽度和高度。

伪状态列表

支持以下伪状态:

伪状态

说明

:active

当这個部件位于一個活跃窗口中时,就处于这种状态。

:adjoins-item

当一個 QTreeView 的 ::branch 与一個条目相邻时,就处于这种状态。

:alternate

QAbstractItemView::alternatingRowColors()被设置成true(真)时,在绘制 QAbstractItemView 的行时,每个交替行都具有这個状态。

:bottom

这個条目位于底部。比如,某個 QTabBar ,它的标签位于底部。

:checked

这個条目被选中。比如, QAbstractButton checked(选中)状态。

:closable

这個条目可被关闭。比如,某個 QDockWidget ,它的QDockWidget::DockWidgetClosable特性被开启。

:closed

这個条目处于关闭状态。比如,在一個 QTreeView 中的某個处于折叠(non-expanded)状态的条目

:default

这個条目是默认的。比如,一個默认(default)的按钮(QPushButton ),或者一個菜单( QMenu )中的默认动作。

:disabled

这個条目被禁用(disabled)。

:editable

这個组合框( QComboBox )可被编辑。

:edit-focus

这個条目拥有编辑焦点(参考QStyle::State_HasEditFocus)。这個状态只在Qt Extended 程序中有效。

:enabled

这個条目处于启用(enabled)状态。

:exclusive

这個条目是一個互斥的条目组中的一個。比如,在一個互斥的QActionGroup 中的一個菜单条目。

:first

这個条目是(一個列表中的)第一個。比如,一個 QTabBar 中的第一個标签。

:flat

这個条目是平的(flat)。比如,一個平的(flat)按钮(QPushButton )。

:floatable

这個条目可浮动。比如,一個 QDockWidget ,它的QDockWidget::DockWidgetFloatable特性被开启。

:focus

这個条目拥有输入焦点(input focus)。

:has-children

这個条目拥有子代对象。比如,在一個 QTreeView 中,拥有子代条目的条目。

:has-siblings

这個条目拥有兄弟姐妹(siblings)。比如,在一個 QTreeView中,拥有兄弟姐妹的条目。

:horizontal

这個条目是水平的。

:hover

鼠标正悬停于这個条目之上。

:indeterminate

这個条目具有不确定状态。比如,一個被部分选中(partially checked)的 QCheckBox 或 QRadioButton 

:last

这個条目是(一個列表中的)最后一個。比如,一個 QTabBar 中的最后一個标签。

:left

这個条目被放置在左边。比如,一個 QTabBar ,它的标签放置在左边。

 

:maximized

这個条目被最大化。比如,一個最大化的 QMdiSubWindow 

:middle

这個条目(在一個列表中)位于中间。比如,在一個 QTabBar中,某個既不在开关也不在末尾的标签。

:minimized

这個条目被最小化。比如,一個最小化的 QMdiSubWindow 

:movable

这個条目可到处移动。比如,某個 QDockWidget ,它的QDockWidget::DockWidgetMovable特性被开启。

:no-frame

这個条目没有框架(frame)。比如,一個不带框架的 QSpinBox或 QLineEdit 

:non-exclusive

这個条目是某個非互斥的条目组中的一個。比如,在某個非互斥的 QActionGroup 中的一個菜单条目。

:off

对于可被切换的条目来说,这個对应着它的“关闭”("off")状态。

:on

对于可被切换的条目来说,这個对应着它的“开启”("on")状态。

:only-one

这個条目是(某個列表中)唯一的一個。比如,某個 QTabBar 中唯一的一個标签。

:open

这個条目处于打开(open)状态。比如,在一個 QTreeView 中的某個已展开(expanded)的条目,或带有一個已打开的菜单的一個 QComboBox 或 QPushButton 

:next-selected

(列表中的)下一個条目被选中。比如,在一個 QTabBar 中的选中标签是当前这個标签的下一個。

:pressed

这個条目正被鼠标按下。

:previous-selected

(列表中的)上一個条目被选中。比如,在某個 QTabBar 中,位于当前选中的标签的下一個的标签。

:read-only

这個条目被标记为只读的或不可编辑的。比如,一個只读的QLineEdit 或一個不可编辑的 QComboBox 

:right

这個条目被放置在右边。比如,某個 QTabBar ,它将其标签放置在右边。

:selected

这個条目被选中。比如,在一個 QTabBar 中被选中的那标签,或在一個 QMenu 中被选中的那個条目。

:top

这個条目被放置在顶部。比如,某個 QTabBar ,它将其标签放置在顶部。

:unchecked

这個条目处于未选中状态(unchecked)。

:vertical

这個条目是竖直的。

:window

这個部件是一個窗口(也就是说,顶级部件)。

子控件列表

以下子控件是可用的:

子控件

说明

::add-line

用来为 QScrollBar 增加一行的按钮。

::add-page

在一個 QScrollBar 中滑块(handle)(slider)与 add-line(加一行)之间的区域。

::branch

QTreeView 的分支指示器。

::chunk

QProgressBar 的进度块。

::close-button

一個 QDockWidget 的或者一個 QTabBar 中的标签的关闭按钮。

::corner

在一個 QAbstractScrollArea 中的两個滚动条之间的边角。

::down-arrow

QComboBox 、 QHeaderView (排序指示器)、 QScrollBar QSpinBox 的向下箭头。

::down-button

QScrollBar 或 QSpinBox 的向下按钮。

::drop-down

QComboBox 的下拉按钮。

::float-button

QDockWidget 的浮动(float)按钮。

::groove

QSlider 的滑动槽。

::indicator

QAbstractItemView 、 QCheckBox 、 QRadioButton 、可选中的QMenu 条目或可选中的 QGroupBox 的指示器。

::handle

QScrollBar 、 QSplitter 或 QSlider 的滑块(handle)(slider)。

::icon

QAbstractItemView 或 QMenu 的图标。

::item

QAbstractItemView 、 QMenuBar 、 QMenu 或 QStatusBar 中的一個条目。

::left-arrow

QScrollBar 的左箭头。

::left-corner

QTabWidget 的左侧边角。比如,这個控件可用来控制某個QTabWidget 中的左侧边角部件的位置。

::menu-arrow

一個带有菜单的 QToolButton 的箭头。

::menu-button

QToolButton 的菜单按钮。

::menu-indicator

QPushButton 的菜单指示器。

::right-arrow

QMenu 或 QScrollBar 的右侧箭头。

::pane

QTabWidget 的方框(pane)(frame)。

::right-corner

QTabWidget 的右侧边角。比如,这個控件可用来控制某個QTabWidget 中的右侧边角部件的位置。

::scroller

QMenu 或 QTabBar 的滚动器。

::section

QHeaderView 的一個区段(section)。

::separator

QMenu (菜单)的分隔符,或一個 QMainWindow (主窗口)中的分隔符。

::sub-line

QScrollBar 中用来减一行的按钮。

::sub-page

在一個 QScrollBar 中位于滑块(handle)(slider)与 sub-line (减一行按钮)之间的区域。

::tab

QTabBar 或 QToolBox 中的标签。

::tab-bar

QTabWidget 的标签条。这個子控件仅用来控制 QTabBar QTabWidget 内部的位置。要设置其样式,则使用 ::tab 子控件。

::tear

QTabBar 的离合(tear)指示器。

::tearoff

QMenu 的离合(tear-off)指示器。

::text

QAbstractItemView 的文字。

::title

QGroupBox 或 QDockWidget 的标题。

::up-arrow

QHeaderView (排序指示器)、 QScrollBar 或 QSpinBox 的向上箭头。

::up-button

QSpinBox 的向上按钮。

参考 自定义QPushButton的菜单指示器子控件 示例以了解如何对子控件进行自定义。

http://stupidbeauty.com/Blog/article/1352/Qt4.7%E6%96%87%E6%A1%A3%E7%BF%BB%E8%AF%91%EF%BC%9AQt%E6%A0%B7%E5%BC%8F%E5%8D%95%E5%8F%82%E8%80%83,Qt%20Style%20Sheets%20Reference

你可能感兴趣的:(Qt4.7文档翻译:Qt样式单参考,Qt Style Sheets Reference(超长,超全))