• 426阅读
  • 8回复

[提问]QT应用程序界面字符颜色、背景颜色设置问题(UI,setStyleSheet) [复制链接]

上一主题 下一主题
离线呆哥哥
 

只看楼主 倒序阅读 楼主  发表于: 10-17


上图中的界面设置为深色背景,比较简单。
下面图中的表头的背景设置可用以下两句来完成:
ui.HQTable->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,143,218);color: white;};");//横向表头
ui.HQTable->verticalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,143,218);color: white;};"); //设置垂直表头
然而,下面图中两个红圈内的区域的背景设置,要怎么弄?(一个区域是所谓的“标签”即TAB1和TAB2等,另一个区域是横向表头与垂直表头相交叉的区域)。万能的网呀,请把大神带来帮帮我吧!!!


离线呆哥哥

只看该作者 1楼 发表于: 10-17
对了,环境是VS2017C++。请大神们指点一下,试了N多语句,都不起作用!
离线liudianwu

只看该作者 2楼 发表于: 10-18
上面那个是QTabBar
  1. QTabBar::tab{
  2. border:1px solid #353535;
  3. color:#F0F0F0;
  4. margin:0px;
  5. background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #636363,stop:1 #575757);
  6. }
  7. QTabBar::tab:selected,QTabBar::tab:hover{
  8. border-style:solid;
  9. border-color:#00BB9E;
  10. background:#464646;
  11. }
  12. QTabBar::tab:top,QTabBar::tab:bottom{
  13. padding:3px 8px 3px 8px;
  14. }
  15. QTabBar::tab:left,QTabBar::tab:right{
  16. padding:8px 3px 8px 3px;
  17. }
  18. QTabBar::tab:top:selected,QTabBar::tab:top:hover{
  19. border-width:2px 0px 0px 0px;
  20. }
  21. QTabBar::tab:right:selected,QTabBar::tab:right:hover{
  22. border-width:0px 0px 0px 2px;
  23. }
  24. QTabBar::tab:bottom:selected,QTabBar::tab:bottom:hover{
  25. border-width:0px 0px 2px 0px;
  26. }
  27. QTabBar::tab:left:selected,QTabBar::tab:left:hover{
  28. border-width:0px 2px 0px 0px;
  29. }
  30. QTabBar::tab:first:top:selected,QTabBar::tab:first:top:hover,QTabBar::tab:first:bottom:selected,QTabBar::tab:first:bottom:hover{
  31. border-left-width:1px;
  32. border-left-color:#353535;
  33. }
  34. QTabBar::tab:first:left:selected,QTabBar::tab:first:left:hover,QTabBar::tab:first:right:selected,QTabBar::tab:first:right:hover{
  35. border-top-width:1px;
  36. border-top-color:#353535;
  37. }
  38. QTabBar::tab:last:top:selected,QTabBar::tab:last:top:hover,QTabBar::tab:last:bottom:selected,QTabBar::tab:last:bottom:hover{
  39. border-right-width:1px;
  40. border-right-color:#353535;
  41. }
  42. QTabBar::tab:last:left:selected,QTabBar::tab:last:left:hover,QTabBar::tab:last:right:selected,QTabBar::tab:last:right:hover{
  43. border-bottom-width:1px;
  44. border-bottom-color:#353535;
  45. }
下面这个是表格的左上角按钮
  1. QHeaderView::section,QTableCornerButton:section{
  2. padding:3px;
  3. margin:0px;
  4. color:#F0F0F0;
  5. border:1px solid #353535;
  6. border-left-width:0px;
  7. border-right-width:1px;
  8. border-top-width:0px;
  9. border-bottom-width:1px;
  10. background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #636363,stop:1 #575757);
  11. }
你需要来一份Qt样式表武林秘籍,请关注我的开源主页
https://gitee.com/feiyangqingyun
https://github.com/feiyangqingyun
强烈推荐关注里边的QWidgetDemo项目和Qt开发经验


1条评分金钱+1
呆哥哥 金钱 +1 先谢再说! 10-18
专业各种自定义控件编写+UI定制+输入法定制+视频监控+工业控制+仪器仪表+嵌入式linux+各种串口网络通信,童叟无欺,量大从优,欢迎咨询购买定制!你正好需要,我正好专业!QQ:517216493 微信:feiyangqingyun Email:feiyangqingyun@163.com
群号:853086607(Qt交流大会,雨田哥群,不定期上传作品,解答作品中相关问题!) 312125701(QtQML多多指教群) 46679801(Qt开发技术交流群-5000人大群)
离线呆哥哥

只看该作者 3楼 发表于: 10-18
回 liudianwu 的帖子
liudianwu:上面那个是QTabBar
QTabBar::tab{
border:1px solid #353535;
color:#F0F0F0;
margin:0px;
....... (2019-10-18 08:25) 

非常感谢回复。我把上面两部分代码测试了一下。第二部分的代码能起作用。可以顺利设置横向和纵向表头交叉处的颜色。
但第一部分代码,我把它放到“编辑样式表”里,没起作用!请问是没弄对吗?应该放哪才能起作用?谢谢!
离线呆哥哥

只看该作者 4楼 发表于: 10-18
又反复用总版主回复的代码测试来测试去,其中有一次Tab1和Tab2标签的颜色变了,但同时周围的颜色却又恢复成灰色(“周围”指的是工具栏区域和状态栏区域)。回过头又变动了一下,Tab1和Tab2标签的颜色就再也变不了,始终是灰色了
离线呆哥哥

只看该作者 5楼 发表于: 10-20
看了“Qt样式表武林秘籍.pdf”,又看了“Qt样式表葵花宝典.pdf”,可真是高深呀。然而,我需要的Tab背景色暗自岿然不动!!!
离线wcrqpdb

只看该作者 6楼 发表于: 10-20
回 呆哥哥 的帖子
呆哥哥:看了“Qt样式表武林秘籍.pdf”,又看了“Qt样式表葵花宝典.pdf”,可真是高深呀。然而,我需要的Tab背景色暗自岿然不动!!! (2019-10-20 11:50) 

当然不行啦,最后那页你都未看,"欲练神功先必自宫"
离线呆哥哥

只看该作者 7楼 发表于: 10-21
回 wcrqpdb 的帖子
wcrqpdb:当然不行啦,最后那页你都未看,"欲练神功先必自宫" (2019-10-20 20:01) 

若欲自宫,先求后宫。万一后宫不同意喃?^_^
离线呆哥哥

只看该作者 8楼 发表于: 10-21
回 liudianwu 的帖子
liudianwu:
上面那个是QTabBar
[code]QTabBar::tab{
border:1px solid #353535;
color:#F0F0F0;
margin:0px;
.......

我又反复测试,还是未能如愿。目前是这样:用了你上面的代码后,Tab1、Tab2的背景颜色始终不变,效果如下:
但这时,若去掉文本颜色和背景色的设置,则Tab1、Tab2的背景色起作用了,这时因去掉文本和背景的设置,默认文本为黑背景为白。效果如下:
我也试过改变渐变属性等,但不行。请教:是不是因为背景设置为深色,则Tabx的背景与窗口背景反差太小而不能再设置为深色?还是什么原因?请指教!谢谢!@liudianwu  
本帖提到的人: @liudianwu
快速回复
限100 字节
 
上一个 下一个