Qt4.7文檔翻譯:Qt樣式單參考,Qt Style Sheets Reference(超長,超全)


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

某個部件中的圖標的寬度和高度。

以下部件的圖標尺寸可使用這個屬性來設置。

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

指定一個顏色或一個漸變或調色板中的一個條目。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM