【问题标题】:customizing tab control in stylesheet in qt在 qt 的样式表中自定义选项卡控件
【发布时间】:2010-11-03 07:26:07
【问题描述】:

我只想对特定标签进行更改。我该怎么做?

我都试过了:

QTabBar::tab#tbGeneral{... } 

QTabWidget::tab-bar#tbGeneral{... } 

都没有用。

【问题讨论】:

  • 您绝对需要使用样式表还是可以在您的代码中使用?

标签: qt tabs stylesheet


【解决方案1】:

你可能看过Customizing QTabWidget and QTabBar

要根据状态设置单个选项卡的样式(:only-one, :first, :last, :middle, :previous-selected, :next-selected, :selected),您可以使用类似于以下的样式表代码:

QTabBar::tab {
    border: 1px solid #C4C4C3;
    border-bottom-color: #C2C7CB;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    padding: 1px 3px;
    margin-left: 1px;
    margin-bottom: 4px;
}

QTabBar::tab:selected {
    background-color: #f14040;
    border-bottom-style: none;
}

由于各个选项卡不是小部件(或对象),因此它们没有对象名称或其他可以将它们识别为样式表的属性。您只能使用伪类通过样式表来设置选项卡的样式。

您可能必须使用 (C++) 代码来根据标签更改选项卡的样式。在 Qt 中自定义样式的推荐方法是通过 QStyle 类。您可以继承QStyle 或使用QProxyStyle 来更改特定小部件的外观。另一种选择(Qt 可能不推荐)是通过继承 QTabBar 并重新实现函数QWidget::paintEvent( QPaintEvent *event)

【讨论】:

  • 你误解了我的意思。我不想更改窗格。我只想要
  • 区分两种情况:是否选择了第一个选项卡。也许我之前没有说清楚。
猜你喜欢
  • 1970-01-01
  • 2020-08-06
  • 2011-01-31
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
相关资源
最近更新 更多