3

经过长时间的访客状态,终于,这是我的第一篇文章。我在我的 TabWidget(来自配置)中动态创建选项卡。喜欢; - 它是python代码,pyqt,答案可以用c++编码,对我来说没关系:) –</p>

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?

所有帖子将不胜感激:)

4

1 回答 1

3

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

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

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

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

tabWidget->setCurrentIndex(1);
tabWidget->tabBar()->setStyleSheet("background-color: blue;");
于 2013-04-24T20:01:31.467 回答