首页 > 解决方案 > 为 QTabWidget 中的非选定选项卡着色

问题描述

在此处输入图像描述

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

我环顾了这个网站,发现了一些代码,但我无法将它们翻译成我需要的格式。到目前为止,我在我的程序的 init 中有这个,但它不完整并且不起作用。

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

标签: pythonpyqtqtstylesheetsqtabwidget

解决方案


您必须使用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 }""")

推荐阅读