为 QTabWidget 中的非选定选项卡着色

Color the Non selected tabs in a QTabWidget

在 3-tab QTabWidget 中,我想更改 NON-SELECTED 选项卡的背景颜色,让选定的选项卡保持默认背景颜色(白色)。换句话说,我想更改显示在所选选项卡上方的两个未选中选项卡的一小部分的颜色。

我浏览了该站点并找到了一些代码,但我无法将它们翻译成我需要的格式。到目前为止,我在我的程序的初始化中有这个,但它不完整并且不起作用。

self.ui.tabWidget.tabBar().setStyleSheet('xxxxxxxx {background-color: yellow }')

您必须使用 QTabBar::tab:!selected:

from PyQt5 import QtWidgets

if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QTabWidget()

    # For more information to customize the QTabWidget and QTabBar check
    # https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
    w.setStyleSheet(
        """
    QTabBar::tab:!selected {
        background: green
    }
    """
    )
    for i in range(5):
        w.addTab(QtWidgets.QWidget(), f"tab-{i}")
    w.show()
    w.resize(640, 480)
    sys.exit(app.exec_())

你的情况:

self.ui.tabWidget.setStyleSheet("""QTabBar::tab:!selected{ background: green }""")