更改 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 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章