更改 QTabWidget 的背景颜色

Posted

技术标签:

【中文标题】更改 QTabWidget 的背景颜色【英文标题】:Changing the background color of QTabWidget 【发布时间】:2014-05-17 08:11:39 【问题描述】:

我目前有一个看起来像这样的 QTabWidget。QtabWidget 里面有一个 QtableView

我想知道如何更改 QtabWidget 的背景颜色。我想为 QtabWidget 维护我现有的样式表,并且只在红色箭头标记的区域中添加蓝色背景。简而言之,我想在标签下添加背景颜色。我目前有一个看起来像这样的样式表

QTAB

QTabWidget

  /*   min-width:5000em;*/



 QTabWidget::tab-bar 

     left: 5px; /* move to the right by 5px */
 


 QTabWidget::pane
 
     border-top: 1px solid gray;
     border-left: 1px solid gray;
     border-right: 1px solid gray;
     border-bottom: 1px solid gray;
 

 QTabBar::tab
 
     background-color: rgb(166, 166, 166);
     min-width: 70px;

     padding-top : 6px;
     padding-bottom : 8px;
     color: rgb(255, 255, 255);
     font: 10pt "Arial";
 

 QTabBar::tab:selected, QTabBar::tab:hover 

     background-color: rgb(127, 127, 127);
 

 QTabBar::tab:selected 

     /*border-color: #9B9B9B;*/
 

 QTabBar::tab:!selected
 
     margin-top: 2px; /* make non-selected tabs look smaller */

 

任何关于如何在标签下添加背景颜色的建议将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

你可以在构造函数中使用stStyleSheet:

ui->YOURWIDGET->setStyleSheet("background-color: YOURCOLOR");

【讨论】:

【参考方案2】:

为了使 QWidget 的子类在背景颜色上起作用,你需要重写这个函数

   def paintEvent(self, event):
      o = QtGui.QStyleOption()
      o.initFrom(self)
      p = QtGui.QPainter(self)
      self.style().drawPrimitive(QtGui.QStyle.PE_Widget, o, p, self)

【讨论】:

以上是关于更改 QTabWidget 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改 PYQT4 中选项卡的背景颜色

使用 CSS 设计 QTabWidget 背景

更改单个 QTabWidget 选项卡的颜色

在Ubuntu里 可以任意更改“终端”背景颜色教程

Android怎么动态更改actionbar的背景颜色

自定义标签栏背景颜色。如何更改标签栏背景的颜色?