日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QSS样式使用心得以及基础

發布時間:2023/12/29 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QSS样式使用心得以及基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

qss使用心得

a. 多些使用負值和方向的結合解決問題;例如底部有白色線border-bottom? margin,字體上移padding-top:-2px

QTabBar::tab:selected? {border-image: url(:/Style/img/QLabel/tab.png); } QTabBar::tab:!selected? {margin-top:4px solid;border-bottom:-10px solid rgb(255,255,255);margin-bottom:-2px ;background-color: rgb(222, 222, 222);color: #1580B4;padding-top:-2px; } QTabBar::tab {font:13pt "PingFang SC Bold" ;?width:132px;height:47px;margin-right:4px;background-color: rgb(255, 255, 255);border-top-left-radius:5px;border-top-right-radius:5px;margin-bottom:0px; } QTabWidget:pane{border:solid 1px rbg(214,214,214);top:-1px; }

QProgressBar樣式

a. 樣式設置透明,直接使用單詞transparent;

QProgressBar {border: none;color: white;text-align: center;background: transparent; /*設置背景透明*/ } QProgressBar::chunk? {border: none;background-color: rgb(255,255,255); } /*加個邊框*/ QFrame#frame_value {border:1px solid #ffffff;border-radius: 2px;background-color:transparent; }

QSS使用

QSS類似于CSS可以用于設置控件樣式,由于QT style是模擬CSS的布局結構,因此其滿足CSS的盒子模型可以統一UI上同類型的控件,不用一個個去設置樣式。。基本用法如下:

  • QSS文件的創建
  • (1)建立文本文件,寫入樣式表內容,更改文件后綴名為qss;

    (2)在工程中新建資源文件*.qrc,將qss文件加入資源文件qrc中,此處注意prefix最好為"/",否則在調用qss文件時會找不到文件;

    (3)通過傳入路徑\文件名的方式創建一個QFile對象,以readonly的方式打開,然后readAll,最后qApp->setStyleSheet就可以使qss生效。

    2.QSS的使用

    使用qss可將功能與界面的設計分離開,方便UI設計,也可以制作更多更美的界面。

    在代碼中調用qss文件:(可以在構造函數中設置)

    /??? QFile styleSheet(":/qss/myStyle.qss"); if (!styleSheet.open(QIODevice::ReadOnly)) {qWarning("Can't open the style sheet file.");return; } qApp->setStyleSheet(styleSheet.readAll()); styleSheet.close();

    如何獲取Qss的幫助?

    在Qt幫助文檔中搜索關鍵字:Style Sheet

    控件UI設計

    添加邊框顏色

    父窗體設置樣式不影響子控件

  • 如果是在Creator中設置,可在stylesheet中加上”#XXX“,XXX是類名;例如 “#myGroupBox{color:red}”,那么group的背景色變成紅色的!

  • 在代碼中設置同樣如此,setStyleSheet?(“#myGroupBox{color:red}”?); 一定要注意:myGroupBox是objectName,不然樣式表中識別不了!

  • widget控件不能添加背景圖片。

    1. 下拉框 QComboBox :

    a. 點擊箭頭向上,QComboBox::drop-down:checked{}

    b. 下拉列表:QAbstractItemView

    c. 每一項:QAbstractItemView::item{height: 25px;}

    2. 復選框和單選框:

    QRadioButton::indicator::checked, image使用。

    3. QRadioButton

    a. 去除選中的圓圈:

    QRadioButton::indicator::unchecked{

    border:none;

    }

    4. QSS學習之Subcontrol(很詳細)

    5. 官方樣式表:

    Qt Style Sheets Examples

    6. 給控件加邊框:

    border: 1px solid rgb(210,210,210);

    7. 界面開發工具:

    picpick、qss三件套

    8. no-repeat center的基本用法介紹

    鏈接

    a. 在border 和 background 設置背景圖的時候可以使用,no-repeat是該圖形不重復,就會出現一個,然后center就只會出現一次【background不是background-image】

    b. 在默認情況下是repeat(平鋪)如下

    d. no-repeat center如下:

    官方樣式文檔:

    * **Qt Style Sheets**

    按鈕操作相關

    Button:hover{}//按鈕獲取鼠標焦點

    Button:pressed{}//按鈕壓下

    Button:disabled{}//按鈕被禁止,按鈕無效

    表格表頭屬性和滾動條屬性

    QHeaderView {}不能單獨設置某個類型的table的表頭,因為表頭不屬于tablewidget里面的內容。一個table有四部分組成:item、horizontalHeader,verticalHeader,cornerBottonEnabled
    QHeaderView::section{}選中
    QScrollBar:horizontal
    QScrollBar:vertical
    分水平和垂直。一個沒有height,另外一個沒有width屬性
    QScrollBar不分。都適應。

    border-image 和 background-image

    * border可以覆蓋控件,并且讓按鈕的突起不會顯示

    對于一個widget里面的所有控件的樣式設置,

    例如widget名字:wg1

    QWidget#wg1 QPushButton{}//改變wg1所有的button

    QWidget#wg1 *{} //所有控件

    選擇器

    *任意窗口的部件
    QDial給定類的實例,包括子類
    .QDial給定類的實例,不包括子類
    QDial#ageDial給定對象名稱的窗口部件
    QFrame > QDial給定窗口部件的直接子窗體部件
    QFrame QDial給定窗體部件的子孫窗體部件
    QPushButton[enable=“false”]屬性選擇器,配合bt->style()->polish(bt);來一起使用。可以動態的改變樣式。
    需要設置enable屬性,setProperty()和property()

    Qt樣式表中常見的子控件列表

    ::branchQTreeView的分支指示器
    ::chunkQProgressBar的進度顯示塊
    ::close-buttonQDockWidget或者QTabBar頁面的關閉按鈕
    ::down-arrowComboBox、QHeaderView(排序指示器)、QScrollBar或者QSpinBox的下拉箭頭
    ::down-buttonQScrollBar或者QSpinBox的向下按鈕
    ::drop-downComboBox的下拉按鈕
    ::float-buttonQDockWidget的浮動按鈕
    ::grooveQSlider的凹槽
    ::indicatorQAbstractItemView、QCheckBox、QRadioButon、可勾選的QMenu菜單項、或者可勾選的QGroupBox的指示器
    ::handleQScrollBar、QSplitter或者QSlider的滑塊
    ::iconQAbstractItemView或者QMenu的圖標
    ::itemQAbstractItemView、QMenuBar、QMenu或者QStatusBar的一個項
    ::left-arrowQScrollBar的向左箭頭
    ::menu-arrow具有下拉菜單的QToolButton的下拉箭頭
    ::menu-buttonQToolButton的菜單按鈕
    ::menu-indicatorQPushButton的菜單指示器
    ::right-arrowQMenu或者QScrollBar的右側箭頭
    ::paneQTabwidget的面板
    ::scrollerQMenu或者QTabBar的卷軸
    ::sectionQHeaderView的分段
    ::separatorQMenu或者QMainWindow的分割器
    ::tabQTabBar或QToolBox的分頁
    ::tab-barQTableWidget的分頁條,這個子控件只用于控制QTabBar在QTabWidget中的位置,定義分頁的樣式使用::tab子控件
    ::textQAbstracItemView的文字
    ::titleQGroupBox或者QDockWidget的標題
    ::up-arrowQHeaderView(排序指示器),QScrollBar或者QSpinBox的向上箭頭
    ::up-buttonQSpinBox的向上按鈕

    偽狀態

    :active當組件處于一個活動的窗體時,此狀態為真
    :adjoins-itemQTreeView::branch與一個條目相鄰時,此狀態為真。
    :alternate當QAbstractItem的alternatingRowColors()屬性為true時,繪制交替的行時此狀態為真
    :bottom組件處于底部,如QTabBar的表頭位于底部
    :checked組件被勾選,如QAbstractButton的checked屬性為true
    :closable組件可以被關閉時候,為true
    :closed條目處于關閉狀態時,true
    :default條目是缺省的,如一個缺省的QPushButton按鈕
    :disabled條目被禁用
    :editableQComboBox是可編輯的
    :edit-focus條目有編輯焦點
    :enabled條目被使能
    :exclusive條目是一個排他性組的一部分,如一個排他性的QActionGroup的一個菜單項
    :first第一項,如QTabBar中的第一個項
    :flat條目是flat的,設置flat屬性為true
    :focus條目具有焦點
    :has-chlidren條目有子條目,如QTreeView的一個節點具有子節點
    :horizontal條目具有水平方向
    :hover鼠標移動到條目上方時
    :last最后項,和first相對
    :left條目位于左側,錄入QTabBar的頁頭位于左側
    :maximized條目處于最大化,例如最大化的QMdiSubWindow窗口
    :minmized條目處于最小化,例如最小化的QMdiSubWindow窗口
    :movable條目可移動的
    :off對于可以切換狀態的條目,其狀態處于“off”
    :on
    :open條目處于打開狀態,如QTreeView的一個展開條目
    :pressed條目上按下鼠標
    :read-only只讀or不可編輯
    :right條目位于右側
    :selected條目被選中
    :top條目位于頂端
    :unchecked沒有選中
    :vertical條目處于垂直方向

    輔助控制器

    輔助控制器說明
    ::indicator復選框,單選框、可選菜單項或可選群組框的指示器
    ::menu-indicator按鈕的菜單指示器
    ::item菜單

    狀態可以和狀態結合:

    例如:QCheckBox:check:hover{}

    狀態補充:QComboBox:editable{}; 狀態還可以取反!editable;

    QComboBox::down-arrow:on{}//如果組合框是打開的,向下箭頭將下移一個像素

    a:link是超級鏈接的初始狀態

    a:hover是把鼠標放上去時懸停的狀況

    a:active?是鼠標點擊時

    a:visited是訪問過后的情況

    text-align:設置字體位置,text-align:centre;

    屬性:

    * padding:上右下左位置填充空間,位置在文字和窗體之間;支持padding-top;-right;-bottom;-left;

    動態加載樣式QSS

    可以適應兩種情況:同一個widget/table里面同一控件存在兩種樣式;同一個控件需要兩種不同變化:最大化,最小化,鼠標聚焦的時候;

    https://blog.csdn.net/liang19890820/article/details/51693956

    • 水平線和垂直線Line 在樣式表中是使用QFrame來設置
    • 日歷控件的樣式設置:

    相關連接:https://blog.csdn.net/lycx1234/article/details/98883608

    QCalendarWidget QTableView {font: 11pt "思源黑體 CN Medium"; }QCalendarWidget QMenu {font: 10pt "思源黑體 CN Medium"; }

    總結

    以上是生活随笔為你收集整理的QSS样式使用心得以及基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。