Qt学习笔记之样式表
一、概述
Qt的樣式表是從Qt4.2開始引入的描述窗口部件外觀的機制,類似于HTML的層疊樣式表(Cascading Style Sheets,CSS)。樣式表在Qt的風格之上起作用(如果使用了樣式表,QWidget::style()返回的QStyle為“style sheet”),提供了比QPalette更為靈活、更強大的機制。樣式表使用文本描述,可以在應用程序級別和widget級別設置樣式表。如果在不同的級別都設置了樣式表,則Qt繼承所有有效的樣式,這就是層疊(cascading)。
1.1?樣式表語法
樣式表的語法和HTML CSS基本是一致的。Qt的樣式表對大小寫不敏感,但對類名、對象名和屬性名大小寫敏感。如下的示例設置了所有QTextEdit對象背景是黃色的,所有QPushBox對象文本為綠色:
1.1.1 樣式規(guī)則
樣式表包含一系列的規(guī)則,一個樣式規(guī)則由選擇符和定義組成。選擇符(selector)確定哪些窗口部件受規(guī)則影響,定義說明了在窗口部件上應用哪些屬性。
在這條規(guī)則里,QRadioButton是選擇符,{color:red}是定義。這條規(guī)則說明了QRadioButton和它的子類應該使用紅色作為前景色。幾個選擇符可以使用一個定義,使用逗號分隔選擇符,例如:
定義由一個或多個屬性和值對組成,中間用分號隔開,例如:
1.1.2.選擇符類型
Qt支持CSS2中所有的選擇符,表14-14給出了常用的選擇符。
1.1.3.子控件
對于復雜控件,可以訪問它的子控件,如QComboBox上的下拉按鈕,QSpinBox上的向上和向下箭頭,例如:[插圖]上面的代碼使用了自定義的下拉按鈕圖像,::是CSS3中的偽元素。?
上面的代碼使用了自定義的下拉按鈕圖像,::是CSS3中的偽元素。
1.1.4.偽狀態(tài)
選擇符可以包含偽裝態(tài)來表示widget的狀態(tài),偽狀態(tài)在選擇符之后,以冒號分隔,下面定義了當鼠標在QPushButton上懸停時的規(guī)則:
1.1.5.沖突解決
當不同的規(guī)則應用到相同的屬性時,樣式表就產(chǎn)生了沖突。在這種情況下,特定的規(guī)則比通用的規(guī)則優(yōu)先,偽狀態(tài)比沒有偽狀態(tài)的優(yōu)先,如果級別相同,則最后一個規(guī)則優(yōu)先。沖突解決按照CSS2規(guī)范進行。
1.1.6.層疊樣式表
可以在QApplication級別設置,也可以在父widget、子widget級別設置。實際應用樣式時,則合并這幾個級別的樣式。當有沖突時,widget自身的樣式優(yōu)先使用,接下來是父widget、祖先widget,依此類推。
1.1.7.盒子模型
窗口部件和子窗口部件支持背景(background)、邊框(border)、邊距(margin)、填襯(padding),圖1顯示了樣式表的盒子模型。
可以看出邊距、邊框、填襯和內(nèi)容之間的關系。默認情況下,margin、border-width、padding屬性為0,也就是說這幾個矩形框是重合的。如果指定了窗口部件的背景,默認情況下,背景只對邊框內(nèi)部區(qū)域起作用,但可以通過改變background-clip屬性來指定不同的區(qū)域填充。
二 、StyleSheet的使用
StyleSheet文件的默認后綴名為qss,可以通過命令行參數(shù) -stylesheet filename.qss 來設置樣式表,也可以通過QApplication::setStyleSheet 或 QWidget::setStyleSheet來設置應用程序或特定控件要使用的樣式表。
::setStyleSheet函數(shù)的參數(shù)是字符串(不是qss文件的名字,而是樣式表的內(nèi)容),所以直接使用的話,不方便一次設置大量的規(guī)則,但是可以使用資源文件將qss樣式表嵌入到程序中,然后通過QApplication::setStyleSheet來使用,例如:
//! 加載樣式表QFile file(":/qss/psblack.css");if (file.open(QFile::ReadOnly)) {QString qss = QLatin1String(file.readAll());qApp->setStyleSheet(qss);file.close();}一條樣式表規(guī)則由選擇器 (Selector)和屬性定義(declaration)組成。
QComboBox#myComboBox::down-arrow:pressed { position: relative; top: 1px; left: 1px; }這部分是選擇器,用于指定樣式表規(guī)則的應用對象,細分開來:
- QComboBox#myComboBox 這一部分叫類型選擇器(Type Selector),QComboBox指定了對象類名,#name指定對象的實例名(非必須)其它的選擇器語法請參考官方文檔。
- down-arrow 子控件描述符(subcontrol),和前面的字段用::隔開,這里表示組合框的下拉按鍵
- pressed 偽狀態(tài)(Pseudo-States)描述符,和前面的字段用:隔開,這里表示壓下狀態(tài)
以上除了第一個字段,都不是必須,而是進一步限制規(guī)則適用范圍
2.1 樣式表規(guī)則的范圍和優(yōu)先級關系
規(guī)則沖突
多條規(guī)則制定了不同的內(nèi)容,可能的情況有很多,比如
QPushButton:hover { color: white }
QPushButton { color: red }
這種情況,其實可以不算沖突,更加具體的類型描述符定義的規(guī)則擁有更高優(yōu)先級,所以一個有鼠標懸停的按鈕的文本顏色就是白色的,否則為紅色
QPushButton:hover { color: white }
QPushButton:enabled { color: red }
這里就可能發(fā)生規(guī)則沖突,當一個使能的按鈕有鼠標懸停的時候,顏色的定義是什么呢? QStyleSheet的判斷原則是,后面規(guī)則的優(yōu)先級高于前面的規(guī)則,所以這種情況顏色為紅色
QPushButton { color: red }
QAbstractButton { color: gray }
這個相對難發(fā)現(xiàn),一個基類及其子類都定義了針對文本顏色的規(guī)則,那么子類應用哪一條規(guī)則呢?你可能會認為自然是子類用自己的規(guī)則了,很可惜不是,樣式表不考慮類的繼承層級優(yōu)先關系,所以還是后一條規(guī)則優(yōu)先級高于前一條規(guī)則。如果確實要單獨設定子類的規(guī)則,需要交換規(guī)則的順序。
?
樣式表層疊 Cascading
因為樣式表可以應用在QApplication上,也可以單獨應用在控件上,所以最終應用到一個具體控件的樣式表,是通過疊加合并所有的父控件乃至應用程序的樣式表設定來得到的。這種情況下,也有可能發(fā)生規(guī)則沖突, 例如:
qApp->setStyleSheet("QPushButton { color: white }"); myPushButton->setStyleSheet("* { color: blue }");這種情況下,控件自身的樣式表的優(yōu)先級高于父控件或應用程序的樣式表
?
樣式表繼承 Inheritance
?
在標準的CSS樣式表中,一個控件的字體和顏色屬性如果沒有明確設定,那么將自動繼承自父控件,而在QT的樣式表中,不會自動繼承,例如:
qApp->setStyleSheet("QGroupBox { color: red; } ");
這種情況下,對于GroupBox中的添加的子控件,不會自動設置其顏色屬性,如果要設置子控件的屬性,需要明確設定:
qApp->setStyleSheet("QGroupBox, QGroupBox * { color: red; }");
注意,這里的繼承和上面的層疊不一樣,層疊指不同樣式表設置同一個對象,繼承指的則是樣式表規(guī)則中選擇器對控件層級關系的影響
?三、經(jīng)典案例
/** The MIT License (MIT)** Copyright (c) <2013-2014> <Colin Duquesnoy>** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:* The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN* THE SOFTWARE.*/ QToolTip {border: 1px solid #76797C;background-color: rgb(90, 102, 117);;color: white;padding: 5px;opacity: 200; } QWidget {color: #eff0f1;background-color: #31363b;selection-background-color:#3daee9;selection-color: #eff0f1;background-clip: border;border-image: none;outline: 0; } QWidget:item:hover {background-color: #3daee9;color: #eff0f1; } QWidget:item:selected {background-color: #3daee9; } QCheckBox {spacing: 5px;outline: none;color: #eff0f1;margin-bottom: 2px; } QCheckBox:disabled {color: #76797C; } QCheckBox::indicator, QGroupBox::indicator {width: 18px;height: 18px; } QGroupBox::indicator {margin-left: 2px; } QCheckBox::indicator:unchecked {image: url(:/qss_icons/rc/checkbox_unchecked.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed, QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed {border: none;image: url(:/qss_icons/rc/checkbox_unchecked_focus.png); } QCheckBox::indicator:checked {image: url(:/qss_icons/rc/checkbox_checked.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed, QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed {border: none;image: url(:/qss_icons/rc/checkbox_checked_focus.png); } QCheckBox::indicator:indeterminate {image: url(:/qss_icons/rc/checkbox_indeterminate.png); } QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed {image: url(:/qss_icons/rc/checkbox_indeterminate_focus.png); } QCheckBox::indicator:checked:disabled, QGroupBox::indicator:checked:disabled {image: url(:/qss_icons/rc/checkbox_checked_disabled.png); } QCheckBox::indicator:unchecked:disabled, QGroupBox::indicator:unchecked:disabled {image: url(:/qss_icons/rc/checkbox_unchecked_disabled.png); } QRadioButton {spacing: 5px;outline: none;color: #eff0f1;margin-bottom: 2px; } QRadioButton:disabled {color: #76797C; } QRadioButton::indicator {width: 21px;height: 21px; } QRadioButton::indicator:unchecked {image: url(:/qss_icons/rc/radio_unchecked.png); } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed {border: none;outline: none;image: url(:/qss_icons/rc/radio_unchecked_focus.png); } QRadioButton::indicator:checked {border: none;outline: none;image: url(:/qss_icons/rc/radio_checked.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed {border: none;outline: none;image: url(:/qss_icons/rc/radio_checked_focus.png); } QRadioButton::indicator:checked:disabled {outline: none;image: url(:/qss_icons/rc/radio_checked_disabled.png); } QRadioButton::indicator:unchecked:disabled {image: url(:/qss_icons/rc/radio_unchecked_disabled.png); } QMenuBar {background-color: #31363b;color: #eff0f1; } QMenuBar::item {background: transparent; } QMenuBar::item:selected {background: transparent;border: 1px solid #76797C; } QMenuBar::item:pressed {border: 1px solid #76797C;background-color: #3daee9;color: #eff0f1;margin-bottom:-1px;padding-bottom:1px; } QMenu {border: 1px solid #76797C;color: #eff0f1;margin: 2px; } QMenu::icon {margin: 5px; } QMenu::item {padding: 5px 30px 5px 30px;margin-left: 5px;border: 1px solid transparent; /* reserve space for selection border */ } QMenu::item:selected {color: #eff0f1; } QMenu::separator {height: 2px;background: lightblue;margin-left: 10px;margin-right: 5px; } QMenu::indicator {width: 18px;height: 18px; } /* non-exclusive indicator = check box style indicator(see QActionGroup::setExclusive) */ QMenu::indicator:non-exclusive:unchecked {image: url(:/qss_icons/rc/checkbox_unchecked.png); } QMenu::indicator:non-exclusive:unchecked:selected {image: url(:/qss_icons/rc/checkbox_unchecked_disabled.png); } QMenu::indicator:non-exclusive:checked {image: url(:/qss_icons/rc/checkbox_checked.png); } QMenu::indicator:non-exclusive:checked:selected {image: url(:/qss_icons/rc/checkbox_checked_disabled.png); } /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ QMenu::indicator:exclusive:unchecked {image: url(:/qss_icons/rc/radio_unchecked.png); } QMenu::indicator:exclusive:unchecked:selected {image: url(:/qss_icons/rc/radio_unchecked_disabled.png); } QMenu::indicator:exclusive:checked {image: url(:/qss_icons/rc/radio_checked.png); } QMenu::indicator:exclusive:checked:selected {image: url(:/qss_icons/rc/radio_checked_disabled.png); } QMenu::right-arrow {margin: 5px;image: url(:/qss_icons/rc/right_arrow.png) } QWidget:disabled {color: #454545;background-color: #31363b; } QAbstractItemView {alternate-background-color: #31363b;color: #eff0f1;border: 1px solid 3A3939;border-radius: 2px; } QWidget:focus, QMenuBar:focus {border: 1px solid #3daee9; } QTabWidget:focus, QCheckBox:focus, QRadioButton:focus, QSlider:focus {border: none; } QLineEdit {background-color: #232629;padding: 5px;border-style: solid;border: 1px solid #76797C;border-radius: 2px;color: #eff0f1; } QGroupBox {border:1px solid #76797C;border-radius: 2px;margin-top: 20px; } QGroupBox::title {subcontrol-origin: margin;subcontrol-position: top center;padding-left: 10px;padding-right: 10px;padding-top: 10px; } QAbstractScrollArea {border-radius: 2px;border: 1px solid #76797C;background-color: transparent; } QScrollBar:horizontal {height: 15px;margin: 3px 15px 3px 15px;border: 1px transparent #2A2929;border-radius: 4px;background-color: #2A2929; } QScrollBar::handle:horizontal {background-color: #605F5F;min-width: 5px;border-radius: 4px; } QScrollBar::add-line:horizontal {margin: 0px 3px 0px 3px;border-image: url(:/qss_icons/rc/right_arrow_disabled.png);width: 10px;height: 10px;subcontrol-position: right;subcontrol-origin: margin; } QScrollBar::sub-line:horizontal {margin: 0px 3px 0px 3px;border-image: url(:/qss_icons/rc/left_arrow_disabled.png);height: 10px;width: 10px;subcontrol-position: left;subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on {border-image: url(:/qss_icons/rc/right_arrow.png);height: 10px;width: 10px;subcontrol-position: right;subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on {border-image: url(:/qss_icons/rc/left_arrow.png);height: 10px;width: 10px;subcontrol-position: left;subcontrol-origin: margin; } QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal {background: none; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {background: none; } QScrollBar:vertical {background-color: #2A2929;width: 15px;margin: 15px 3px 15px 3px;border: 1px transparent #2A2929;border-radius: 4px; } QScrollBar::handle:vertical {background-color: #605F5F;min-height: 5px;border-radius: 4px; } QScrollBar::sub-line:vertical {margin: 3px 0px 3px 0px;border-image: url(:/qss_icons/rc/up_arrow_disabled.png);height: 10px;width: 10px;subcontrol-position: top;subcontrol-origin: margin; } QScrollBar::add-line:vertical {margin: 3px 0px 3px 0px;border-image: url(:/qss_icons/rc/down_arrow_disabled.png);height: 10px;width: 10px;subcontrol-position: bottom;subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on {border-image: url(:/qss_icons/rc/up_arrow.png);height: 10px;width: 10px;subcontrol-position: top;subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on {border-image: url(:/qss_icons/rc/down_arrow.png);height: 10px;width: 10px;subcontrol-position: bottom;subcontrol-origin: margin; } QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {background: none; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {background: none; } QTextEdit {background-color: #232629;color: #eff0f1;border: 1px solid #76797C; } QPlainTextEdit {background-color: #232629;;color: #eff0f1;border-radius: 2px;border: 1px solid #76797C; } QHeaderView::section {background-color: #76797C;color: #eff0f1;padding: 5px;border: 1px solid #76797C; } QSizeGrip {image: url(:/qss_icons/rc/sizegrip.png);width: 12px;height: 12px; } QMainWindow::separator {background-color: #31363b;color: white;padding-left: 4px;spacing: 2px;border: 1px dashed #76797C; } QMainWindow::separator:hover {background-color: #787876;color: white;padding-left: 4px;border: 1px solid #76797C;spacing: 2px; } QMenu::separator {height: 1px;background-color: #76797C;color: white;padding-left: 4px;margin-left: 10px;margin-right: 5px; } QFrame {border-radius: 2px;border: 1px solid #76797C; } QFrame[frameShape="0"] {border-radius: 2px;border: 1px transparent #76797C; } QStackedWidget {border: 1px transparent black; } QToolBar {border: 1px transparent #393838;background: 1px solid #31363b;font-weight: bold; } QToolBar::handle:horizontal {image: url(:/qss_icons/rc/Hmovetoolbar.png); } QToolBar::handle:vertical {image: url(:/qss_icons/rc/Vmovetoolbar.png); } QToolBar::separator:horizontal {image: url(:/qss_icons/rc/Hsepartoolbar.png); } QToolBar::separator:vertical {image: url(:/qss_icons/rc/Vsepartoolbars.png); } QPushButton {color: #eff0f1;background-color: #31363b;border-width: 1px;border-color: #76797C;border-style: solid;padding: 5px;border-radius: 2px;outline: none; } QPushButton:disabled {background-color: #31363b;border-width: 1px;border-color: #454545;border-style: solid;padding-top: 5px;padding-bottom: 5px;padding-left: 10px;padding-right: 10px;border-radius: 2px;color: #454545; } QPushButton:focus {background-color: #3daee9;color: white; } QPushButton:pressed {background-color: #3daee9;padding-top: -15px;padding-bottom: -17px; } QComboBox {selection-background-color: #3daee9;border-style: solid;border: 1px solid #76797C;border-radius: 2px;padding: 5px;min-width: 75px; } QPushButton:checked{background-color: #76797C;border-color: #6A6969; } QComboBox:hover,QPushButton:hover,QAbstractSpinBox:hover,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QAbstractView:hover,QTreeView:hover {border: 1px solid #3daee9;color: #eff0f1; } QComboBox:on {padding-top: 3px;padding-left: 4px;selection-background-color: #4a4a4a; } QComboBox QAbstractItemView {background-color: #232629;border-radius: 2px;border: 1px solid #76797C;selection-background-color: #3daee9; } QComboBox::drop-down {subcontrol-origin: padding;subcontrol-position: top right;width: 15px;border-left-width: 0px;border-left-color: darkgray;border-left-style: solid;border-top-right-radius: 3px;border-bottom-right-radius: 3px; } QComboBox::down-arrow {image: url(:/qss_icons/rc/down_arrow_disabled.png); } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus {image: url(:/qss_icons/rc/down_arrow.png); } QAbstractSpinBox {padding: 5px;border: 1px solid #76797C;background-color: #232629;color: #eff0f1;border-radius: 2px;min-width: 75px; } QAbstractSpinBox:up-button {background-color: transparent;subcontrol-origin: border;subcontrol-position: center right; } QAbstractSpinBox:down-button {background-color: transparent;subcontrol-origin: border;subcontrol-position: center left; } QAbstractSpinBox::up-arrow,QAbstractSpinBox::up-arrow:disabled,QAbstractSpinBox::up-arrow:off {image: url(:/qss_icons/rc/up_arrow_disabled.png);width: 10px;height: 10px; } QAbstractSpinBox::up-arrow:hover {image: url(:/qss_icons/rc/up_arrow.png); } QAbstractSpinBox::down-arrow,QAbstractSpinBox::down-arrow:disabled,QAbstractSpinBox::down-arrow:off {image: url(:/qss_icons/rc/down_arrow_disabled.png);width: 10px;height: 10px; } QAbstractSpinBox::down-arrow:hover {image: url(:/qss_icons/rc/down_arrow.png); } QLabel {border: 0px solid black; } QTabWidget{border: 0px transparent black; } QTabWidget::pane {border: 1px solid #76797C;padding: 5px;margin: 1px; } QTabBar {qproperty-drawBase: 0;left: 5px; /* move to the right by 5px */border-radius: 3px; } QTabBar:focus {border: 0px transparent black; } QTabBar::close-button {image: url(:/qss_icons/rc/close.png);background: transparent; } QTabBar::close-button:hover {image: url(:/qss_icons/rc/close-hover.png);background: transparent; } QTabBar::close-button:pressed {image: url(:/qss_icons/rc/close-pressed.png);background: transparent; } /* TOP TABS */ QTabBar::tab:top {color: #eff0f1;border: 1px solid #76797C;border-bottom: 1px transparent black;background-color: #31363b;padding: 5px;min-width: 50px;border-top-left-radius: 2px;border-top-right-radius: 2px; } QTabBar::tab:top:!selected {color: #eff0f1;background-color: #54575B;border: 1px solid #76797C;border-bottom: 1px transparent black; } QTabBar::tab:top:!selected:hover {background-color: #3daee9; } /* BOTTOM TABS */ QTabBar::tab:bottom {color: #eff0f1;border: 1px solid #76797C;border-top: 1px transparent black;background-color: #31363b;padding: 5px;border-bottom-left-radius: 2px;border-bottom-right-radius: 2px;min-width: 50px; } QTabBar::tab:bottom:!selected {color: #eff0f1;background-color: #54575B;border: 1px solid #76797C;border-top: 1px transparent black;border-bottom-left-radius: 2px;border-bottom-right-radius: 2px; } QTabBar::tab:bottom:!selected:hover {background-color: #3daee9; } /* LEFT TABS */ QTabBar::tab:left {color: #eff0f1;border: 1px solid #76797C;border-left: 1px transparent black;background-color: #31363b;padding: 5px;border-top-right-radius: 2px;border-bottom-right-radius: 2px;min-height: 50px; } QTabBar::tab:left:!selected {color: #eff0f1;background-color: #54575B;border: 1px solid #76797C;border-left: 1px transparent black;border-top-right-radius: 2px;border-bottom-right-radius: 2px; } QTabBar::tab:left:!selected:hover {background-color: #3daee9; } /* RIGHT TABS */ QTabBar::tab:right {color: #eff0f1;border: 1px solid #76797C;border-right: 1px transparent black;background-color: #31363b;padding: 5px;border-top-left-radius: 2px;border-bottom-left-radius: 2px;min-height: 50px; } QTabBar::tab:right:!selected {color: #eff0f1;background-color: #54575B;border: 1px transparent #76797C;border-right: 1px transparent black;border-top-left-radius: 0px;border-bottom-left-radius: 0px; } QTabBar::tab:right:!selected:hover {background-color: #3daee9; } QTabBar QToolButton::right-arrow:enabled {image: url(:/qss_icons/rc/right_arrow.png);}QTabBar QToolButton::left-arrow:enabled {image: url(:/qss_icons/rc/left_arrow.png);} QTabBar QToolButton::right-arrow:disabled {image: url(:/qss_icons/rc/right_arrow_disabled.png);}QTabBar QToolButton::left-arrow:disabled {image: url(:/qss_icons/rc/left_arrow_disabled.png);} QDockWidget {background: #31363b;border: 1px solid #403F3F;titlebar-close-icon: url(:/qss_icons/rc/close.png);titlebar-normal-icon: url(:/qss_icons/rc/undock.png); } QDockWidget::close-button, QDockWidget::float-button {border: 1px solid transparent;border-radius: 2px;background: transparent; } QDockWidget::close-button:hover, QDockWidget::float-button:hover {background: rgba(255, 255, 255, 10); } QDockWidget::close-button:pressed, QDockWidget::float-button:pressed {padding: 1px -1px -1px 1px;background: rgba(255, 255, 255, 10); } QTreeView, QListView {border: 1px solid #76797C;background-color: #232629; } QTreeView:branch:selected, QTreeView:branch:hover {background: url(:/qss_icons/rc/transparent.png); } QTreeView::branch:has-siblings:!adjoins-item {border-image: url(:/qss_icons/rc/transparent.png); } QTreeView::branch:has-siblings:adjoins-item {border-image: url(:/qss_icons/rc/transparent.png); } QTreeView::branch:!has-children:!has-siblings:adjoins-item {border-image: url(:/qss_icons/rc/transparent.png); } QTreeView::branch:has-children:!has-siblings:closed, QTreeView::branch:closed:has-children:has-siblings {image: url(:/qss_icons/rc/branch_closed.png); } QTreeView::branch:open:has-children:!has-siblings, QTreeView::branch:open:has-children:has-siblings {image: url(:/qss_icons/rc/branch_open.png); } QTreeView::branch:has-children:!has-siblings:closed:hover, QTreeView::branch:closed:has-children:has-siblings:hover {image: url(:/qss_icons/rc/branch_closed-on.png);} QTreeView::branch:open:has-children:!has-siblings:hover, QTreeView::branch:open:has-children:has-siblings:hover {image: url(:/qss_icons/rc/branch_open-on.png);} QListView::item:!selected:hover, QListView::item:!selected:hover, QTreeView::item:!selected:hover {background: rgba(0, 0, 0, 0);outline: 0;color: #eff0f1 } QListView::item:selected:hover, QListView::item:selected:hover, QTreeView::item:selected:hover {background: #3daee9;color: #eff0f1; } QSlider::groove:horizontal {border: 1px solid #565a5e;height: 4px;background: #565a5e;margin: 0px;border-radius: 2px; } QSlider::handle:horizontal {background: #232629;border: 1px solid #565a5e;width: 16px;height: 16px;margin: -8px 0;border-radius: 9px; } QSlider::groove:vertical {border: 1px solid #565a5e;width: 4px;background: #565a5e;margin: 0px;border-radius: 3px; } QSlider::handle:vertical {background: #232629;border: 1px solid #565a5e;width: 16px;height: 16px;margin: 0 -8px;border-radius: 9px; } QToolButton {background-color: transparent;border: 1px transparent #76797C;border-radius: 2px;margin: 3px;padding: 5px; } QToolButton[popupMode="1"] { /* only for MenuButtonPopup */padding-right: 20px; /* make way for the popup button */border: 1px #76797C;border-radius: 5px; } QToolButton[popupMode="2"] { /* only for InstantPopup */padding-right: 10px; /* make way for the popup button */border: 1px #76797C; } QToolButton:hover, QToolButton::menu-button:hover {background-color: transparent;border: 1px solid #3daee9;padding: 5px; } QToolButton:checked, QToolButton:pressed,QToolButton::menu-button:pressed {background-color: #3daee9;border: 1px solid #3daee9;padding: 5px; } /* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */ QToolButton::menu-indicator {image: url(:/qss_icons/rc/down_arrow.png);top: -7px; left: -2px; /* shift it a bit */ } /* the subcontrols below are used only in the MenuButtonPopup mode */ QToolButton::menu-button {border: 1px transparent #76797C;border-top-right-radius: 6px;border-bottom-right-radius: 6px;/* 16px width + 4px for border = 20px allocated above */width: 16px;outline: none; } QToolButton::menu-arrow {image: url(:/qss_icons/rc/down_arrow.png); } QToolButton::menu-arrow:open {border: 1px solid #76797C; } QPushButton::menu-indicator {subcontrol-origin: padding;subcontrol-position: bottom right;left: 8px; } QTableView {border: 1px solid #76797C;gridline-color: #31363b;background-color: #232629; } QTableView, QHeaderView {border-radius: 0px; } QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed {background: #3daee9;color: #eff0f1; } QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active {background: #3daee9;color: #eff0f1; } QHeaderView {background-color: #31363b;border: 1px transparent;border-radius: 0px;margin: 0px;padding: 0px; } QHeaderView::section {background-color: #31363b;color: #eff0f1;padding: 5px;border: 1px solid #76797C;border-radius: 0px;text-align: center; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one {border-top: 1px solid #76797C; } QHeaderView::section::vertical {border-top: transparent; } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one {border-left: 1px solid #76797C; } QHeaderView::section::horizontal {border-left: transparent; } QHeaderView::section:checked{color: white;background-color: #334e5e;}/* style the sort indicator */ QHeaderView::down-arrow {image: url(:/qss_icons/rc/down_arrow.png); } QHeaderView::up-arrow {image: url(:/qss_icons/rc/up_arrow.png); } QTableCornerButton::section {background-color: #31363b;border: 1px transparent #76797C;border-radius: 0px; } QToolBox {padding: 5px;border: 1px transparent black; } QToolBox::tab {color: #eff0f1;background-color: #31363b;border: 1px solid #76797C;border-bottom: 1px transparent #31363b;border-top-left-radius: 5px;border-top-right-radius: 5px; } QToolBox::tab:selected { /* italicize selected tabs */font: italic;background-color: #31363b;border-color: #3daee9;} QStatusBar::item {border: 1px solid #76797C;border-radius: 2px;} QFrame[height="3"], QFrame[width="3"] {background-color: #76797C; } QSplitter::handle {border: 1px dashed #76797C; } QSplitter::handle:hover {background-color: #787876;border: 1px solid #76797C; } QSplitter::handle:horizontal {width: 1px; } QSplitter::handle:vertical {height: 1px; } QProgressBar {border: 1px solid #76797C;border-radius: 5px;text-align: center; } QProgressBar::chunk {background-color: #05B8CC; }?
總結
以上是生活随笔為你收集整理的Qt学习笔记之样式表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程语言之类型之间转换
- 下一篇: Qt学习笔记之常用控件QlistWidg