在长期访客身份之后,最后,这是我的第一篇文章。 我在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?
所有帖子将不胜感激:)
答案 0 :(得分:3)
更改基础对象名称无济于事,您要对基础对象的样式表所做的就是更改该面板的内容背景。
我做了很多研究并测试了一些关于你的问题的事情,似乎唯一的解决办法是重新实现QTabWidget
绘画事件。
我尝试了一些我在其他任何地方都没有读过的东西,它给出了一些奇怪的结果,这种方法应该有效。如果你想学习它并亲自看看:
tabWidget->setCurrentIndex(0);
tabWidget->tabBar()->setStyleSheet("background-color: red;");
tabWidget->setCurrentIndex(1);
tabWidget->tabBar()->setStyleSheet("background-color: blue;");