如何在QTabWidget上设置背景颜色/图像特定选项卡?

时间:2012-12-27 12:30:46

标签: python qt pyqt qtabbar qtstylesheets

在长期访客身份之后,最后,这是我的第一篇文章。 我在TabWidget中动态创建了标签(来自配置)。喜欢; -it是python代码,pyqt,答案可以编码为c ++,对我来说无关紧要:) -

baseWidget = QWidget()
//fill baseWidget with other widgets
window.tabWidget.addTab(baseWidget, _fromUtf8(""))
window.tabWidget.setTabText(window.tabWidget.indexOf(baseWidget), ...)

然后,通过qss样式,像;

QTabBar::tab {}
QTabBar::tab:selected {}
QTabBar::tab:!selected {}
QTabBar::tab:last {}
QTabBar::tab:first:!selected {}
QTabBar::tab:!selected:hover {}

此时一切正常。但是,我想单独为我的标签着色。

我怎样才能做到这一点? 如果可能,如何为选项卡设置objectName?

所有帖子将不胜感激:)

1 个答案:

答案 0 :(得分:3)

更改基础对象名称无济于事,您要对基础对象的样式表所做的就是更改该面板的内容背景。

我做了很多研究并测试了一些关于你的问题的事情,似乎唯一的解决办法是重新实现QTabWidget绘画事件。

我尝试了一些我在其他任何地方都没有读过的东西,它给出了一些奇怪的结果,这种方法应该有效。如果你想学习它并亲自看看:

tabWidget->setCurrentIndex(0);
tabWidget->tabBar()->setStyleSheet("background-color: red;");

tabWidget->setCurrentIndex(1);
tabWidget->tabBar()->setStyleSheet("background-color: blue;");