Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在qt中自定义样式表中的选项卡控件_Qt_Tabs_Stylesheet - Fatal编程技术网

在qt中自定义样式表中的选项卡控件

在qt中自定义样式表中的选项卡控件,qt,tabs,stylesheet,Qt,Tabs,Stylesheet,我只想对特定选项卡进行更改。我怎么做 我尝试了两种方法: QTabBar::tab#tbGeneral{... } QTabWidget::tab-bar#tbGeneral{... } 没有起作用。你可能已经研究过了 要根据各个选项卡的状态设置其样式(:仅一个,:第一个,:最后一个,:中间,:上一个选中,:下一个选中,:选中),可以使用类似于以下内容的样式表代码: QTabBar::tab { border: 1px solid #C4C4C3; border-bott

我只想对特定选项卡进行更改。我怎么做

我尝试了两种方法:

QTabBar::tab#tbGeneral{... } 

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

没有起作用。

你可能已经研究过了

要根据各个选项卡的状态设置其样式(:仅一个,:第一个,:最后一个,:中间,:上一个选中,:下一个选中,:选中),可以使用类似于以下内容的样式表代码:

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
或使用
QProxyStyle
来更改特定小部件的外观。另一种选择(Qt可能不推荐)是对QTabar进行子类化并重新实现该函数。

您误解了我的意思。我不想更改窗格。我只想区分两种情况:是否选择了第一个选项卡。也许我以前没说清楚。你真的需要使用样式表吗?还是可以在你的代码中使用呢?