【问题标题】:Color the Non selected tabs in a QTabWidget为 QTabWidget 中的非选定选项卡着色
【发布时间】:2019-09-26 15:51:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: python pyqt qtstylesheets qtabwidget


    【解决方案1】:

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

    【讨论】:

    • 您能否以我需要和理解的格式给出答案,就像我在问题中的示例一样?我无法翻译你的“QTabBar::tab:!slected ...”谢谢
    • @Dennis 我提供了一个 MWE 让社区了解如何使用它,但如果你仍然不明白我已经为你的特定代码放置了代码
    • 谢谢。最后一件事:我的标签是有角度的(在 QTDesigner 中完成),绿色超出了有角度的标签的边界。有什么方法可以使颜色符合标签的形状?如果没有,则没有投标交易。
    • @Dennis 提供minimal reproducible example 和您所获得的图片
    • 抱歉,我不知道如何将图片粘贴到这里给你看。但是,在 QtCreator/designer 中,在 QTabWidget 的右侧,选项卡的形状有 2 个选项——圆形和三角形。我选择三角形。选中的选项卡显示为折角边缘,未选中的选项卡上的绿色为方形。
    猜你喜欢
    • 2018-05-30
    • 2014-04-30
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多