我有一个QTabWidget
包含 4 个选项卡的选项卡。我想单独设置它们的每个标题:我看到我可以使用样式表来做到这一点。但我的问题是我不能只更改一个选项卡的标题,即选项卡名称所在的位置,而不更改选项卡的其余部分。
以一种简单的方式,假设我想要第一个标签为红色,第二个为蓝色,第三个为绿色,第四个为黄色。那么,如何在不更改其他选项卡的情况下更改每个选项卡的样式。
谢谢!
编辑
我在那里看到了如何一次更改所有选项卡标题的样式,但不能单独更改
我有一个QTabWidget
包含 4 个选项卡的选项卡。我想单独设置它们的每个标题:我看到我可以使用样式表来做到这一点。但我的问题是我不能只更改一个选项卡的标题,即选项卡名称所在的位置,而不更改选项卡的其余部分。
以一种简单的方式,假设我想要第一个标签为红色,第二个为蓝色,第三个为绿色,第四个为黄色。那么,如何在不更改其他选项卡的情况下更改每个选项卡的样式。
谢谢!
编辑
我在那里看到了如何一次更改所有选项卡标题的样式,但不能单独更改
如果你继承 QTabWidget,你可以访问受保护的函数QTabWidget::tabBar()
,它返回它使用的 QTabBar。QTabBar 有一个方法QTabBar::setTabTextColor()
可以改变单个标签的文本颜色。这是一个例子:
#include <QtGui>
class TabWidget : public QTabWidget
{
public:
TabWidget()
{
addTab(new QPushButton("Hi 1!"), "Button 1 Tab");
addTab(new QPushButton("Hi 2!"), "Button 2 Tab");
tabBar()->setTabTextColor(0, QColor(Qt::red));
tabBar()->setTabTextColor(1, QColor(Qt::blue));
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
TabWidget tabWidget;
tabWidget.show();
return app.exec();
}
如果您需要更多控制,您可以制作自己的选项卡小部件。根据文档,QTabWidget 基本上只是一个 QStackedWidget 与 QTabBar 组合。您可以通过将 QStackedWidget 与例如一组程式化的 QPushButtons 组合来制作自己的选项卡小部件。