当前位置:   article > 正文

QT各种控件常用样式表qss示例

qt各种控件常用样式表qss示例

目录

1、表格控件QTableWidget和QTableView

2、滚动条QScrollBar


1、表格控件QTableWidget和QTableView

这个控件比较复杂,里面包含了滑动条、表头(又细分为内容区/空白区)、表格、整体、左上角按钮等多种不同的元素,他们之间有复杂的叠层关系。需要通过各种“选择器”来指定样式的作用范围。

本文由【暴躁的野生猿】发表于CSDN,如果有非法转载,请帮忙举报,谢谢。百度搜索暴躁的野生猿《QT各种控件常用样式表qss示例》可找到本文的原文。

下面通过示例来一步步观察他的叠层关系。首先使能表格的交替行:alternatingRowColors=true。

  1. QTableView
  2. {/*整个表格区域最底层*/
  3. background: green;
  4. color:white;
  5. }

效果如下:

发现这个绿色背景并没有作用于整体,表头部分仍然为白色,那是因为表头在顶层,遮住了QTableView的绿色背景。

下面设置表头背景色,黑色,半透明,透明度为50。按照预期,黑色半透明和QTableView的绿色叠加后,会形成深绿色。

  1. QTableView
  2. {/*整个表格区域最底层*/
  3. background: green;
  4. color:white;
  5. }
  6. QHeaderView
  7. {/*表头整体样式,包括水平表头的右侧空白区域,垂直表头的下方空白区域*/
  8. background-color: rgba(0,0,0,50);
  9. }

发现表头区域并没有全部变成深绿色,只有表头的非文字区域(空白区域)变成了深绿色。这是因为表头的文字区域,比空白区域的叠层更靠前,白色背景把深绿色给遮住了。下面继续设置表头的文字区域,设置为黑色半透明,透明度50。

  1. QTableView
  2. {/*整个表格区域最底层*/
  3. background: green;
  4. color:white;
  5. }
  6. QHeaderView
  7. {/*表头整体样式,包括水平表头的右侧空白区域,垂直表头的下方空白区域*/
  8. background-color: rgba(0,0,0,50);
  9. }
  10. QHeaderView::section
  11. {/*表头有文字内容的区域*/
  12. background-color: rgba(0, 0, 0, 50);
  13. color: white;
  14. border:none;
  15. }

 

如上图所示,表头的文字区域,变成了颜色更深的深绿色,这是因为这个区域的颜色,实际上是3层颜色的叠加:QTableView整体的绿色+QHeadView表头整体的黑色半透明+section表头文字区域黑色半透明。

上图左上角的按钮还是白色,下面把他设置为黑色半透明:

  1. QTableView
  2. {/*整个表格区域最底层*/
  3. background: green;
  4. color:white;
  5. }
  6. QHeaderView
  7. {/*表头整体样式,包括水平表头的右侧空白区域,垂直表头的下方空白区域*/
  8. background-color: rgba(0,0,0,50);
  9. }
  10. QHeaderView::section
  11. {/*表头有文字内容的区域*/
  12. background-color: rgba(0, 0, 0, 50);
  13. color: white;
  14. border:none;
  15. }
  16. QTableView QTableCornerButton::section
  17. {/*表格左上角按钮*/
  18. border:none;
  19. background-color: rgba(0, 0, 0, 50);;
  20. }

发现他呈现为较深的绿色,说明他位于QTableView整体绿色的上方,层次和QHeadView表头整体是同一层。

下面通过设置各个元素的边框,来更直观的看一下他们的包含与层次关系:

  1. QTableView
  2. {/*整个表格区域最底层*/
  3. background: green;
  4. color:white;
  5. border: 5px solid red;
  6. }
  7. QHeaderView
  8. {/*表头整体样式,包括水平表头的右侧空白区域,垂直表头的下方空白区域*/
  9. background-color: rgba(0,0,0,50);
  10. border: 5px solid blue;
  11. }
  12. QHeaderView::section
  13. {/*表头有文字内容的区域*/
  14. background-color: rgba(0, 0, 0, 50);
  15. color: white;
  16. border: 5px solid yellow;
  17. }
  18. QTableView QTableCornerButton::section
  19. {/*表格左上角按钮*/
  20. border:none;
  21. background-color: rgba(0, 0, 0, 50);
  22. border: 5px solid white;
  23. }
  24. QTableView::item
  25. {/*每个单元格*/
  26. background: gray;
  27. border: 5px solid purple;
  28. }

 表头部分,还支持选中不同的区域,如第一个、最后一个、中间部分、下一个等

例如:垂直表头的第1格,,水平表头中间的所有格,设置为红色边框:

  1. QHeaderView::section:first:vertical
  2. {/*垂直表头第一格文字区域*/
  3. background-color: rgba(0,0,0,50);
  4. border: 5px solid red;
  5. }
  6. QHeaderView::section:middle:horizontal
  7. {/*水平表头所有的中间格文字区域*/
  8. background-color: rgba(0,0,0,50);
  9. border: 5px solid red;
  10. }

效果如下:

2、滚动条QScrollBar

滚动去QScrollArea、列表区QListView QListWidget等里面都有滚动条

  1. QScrollBar:horizontal {
  2. /*整个滑动区域*/
  3. border:5px solid green;
  4. background: cyan;
  5. height: 35px;
  6. margin: 0px 60px 0 60px;/*左右留边,给左右箭头按钮留出空间*/
  7. }
  8. QScrollBar::handle:horizontal {
  9. /*滑块*/
  10. border:3px solid white;
  11. background: gray;
  12. min-width: 5px;
  13. }
  14. QScrollBar::add-line:horizontal {
  15. /*水平+按钮,也即右按钮*/
  16. background: blue;
  17. subcontrol-position: right;
  18. subcontrol-origin: margin;
  19. border: 2px solid black;
  20. width: 26px;
  21. position: absolute;
  22. right:0px;/*右按钮的右边紧贴控件的边沿*/
  23. }
  24. QScrollBar::sub-line:horizontal {
  25. /*水平-按钮,也即左按钮,点击一下滚动一行*/
  26. background: magenta;
  27. width: 26px;
  28. subcontrol-position: top left;
  29. subcontrol-origin: margin;
  30. border: 2px solid black;
  31. left:10px;/*左按钮的左边不靠边*/
  32. }
  33. QScrollBar:left-arrow:horizontal, QScrollBar::right-arrow:horizontal {
  34. /*左右按钮里面的箭头符号*/
  35. width: 8px;
  36. height: 8px;
  37. background: white;
  38. }
  39. QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
  40. /*滑块左右两侧的空白区域,点击一下滚动一页*/
  41. border: 3px solid red;
  42. background: transparent;
  43. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/613822
推荐阅读
相关标签
  

闽ICP备14008679号