【问题标题】:Setting color of Tab part of QTabWidget设置 QTabWidget 的 Tab 部分的颜色
【发布时间】:2014-03-08 08:41:38
【问题描述】:

当我更改 QTabWidget 的背景颜色时,小部件的选项卡部分不会更改颜色。在网上看似乎没有设置这种颜色的简单方法。有什么建议吗?

【问题讨论】:

    标签: qt qtabwidget


    【解决方案1】:

    您可以使用 Qt 的样式表来做到这一点。来自the docs

    /* Style the tab using the tab sub-control. Note that
        it reads QTabBar _not_ QTabWidget */
    QTabBar::tab  {
        background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                    stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
                                    stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
        border: 2px solid #C4C4C3;
        border-bottom-color: #C2C7CB; /* same as the pane color */
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        min-width: 8ex;
        padding: 2px;
    }
    

    将感兴趣的 QSS 定义为字符串后,然后使用 setStyleSheet 方法在相关小部件上设置 QSS。如果您只对设置背景颜色感兴趣,一个简单的样式表可能就足够了:

    yourQTabWidget->setStyleSheet("QTabBar::tab { background-color: #FF0000; }");
    

    -stylesheet 命令行选项也可用,可用于设置应用程序的样式。在性能良好的应用程序中,您应该能够执行以下操作:

    yourQtProgram.exe -stylesheet /path/to/your/stylesheet.qss
    

    【讨论】:

    • 你应该把这个定义放在一个类之外吗?当我使用此代码时,它不会编译。似乎不喜欢 qlineargradient 线
    • 样式表在您的代码中以字符串的形式出现,除非在外部引用。我已经更新了我的答案以澄清。
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多