gpt4 book ai didi

qt - QTabWidget 的每个选项卡的样式都各不相同

转载 作者:行者123 更新时间:2023-12-04 18:35:00 28 4
gpt4 key购买 nike

我有一个 QTabWidget包含 4 个选项卡。我想单独设置它们的每个标题的样式:我看到我可以使用样式表来做到这一点。但我的问题是,我不能只更改一个选项卡的标题(选项卡名称所在的位置),而不更改选项卡的其余部分。

以一种简单的方式,假设我想要第一个标签为红色,第二个为蓝色,第三个为绿色,第四个为黄色。那么,如何在不更改其他选项卡的情况下更改每个选项卡的样式。

谢谢!

编辑

我看到了 there我如何一次更改所有选项卡标题的样式,但不能单独更改

最佳答案

如果子类化 QTabWidget,则可以访问 protected 函数 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();
}

如果您需要更多控制,您可以制作自己的标签小部件。根据 docs , QTabWidget 基本上只是一个 QStackedWidget 结合一个 QTabBar。例如,您可以通过将 QStackedWidget 与一组风格化的 QPushButton 组合来制作自己的选项卡小部件。

关于qt - QTabWidget 的每个选项卡的样式都各不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741465/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com