Qt 小例子学习2 TabBar

Qt小例子

TabBar

#ifndef TABWIDGET_H
#define TABWIDGET_H

#include <QTabWidget>
#include <QStylePainter>
#include <QStyleOption>

class TabBar : public QTabBar
{
public:
    TabBar(const QHash<QString, QColor>& colors, QWidget* parent = 0)
        : QTabBar(parent)
    {
        m_Colors = colors;
    }
protected:
    void paintEvent(QPaintEvent*)
    {
        QStylePainter painter(this);
        QStyleOptionTab opt;
        for(int i = 0; i < count(); i++)
        {
            initStyleOption(&opt, i);
            if(m_Colors.contains(opt.text))
            {
                opt.palette.setColor(QPalette::Button, m_Colors[opt.text]);
            }
            painter.drawControl(QStyle::CE_TabBarTabShape, opt);
            painter.drawControl(QStyle::CE_TabBarTabLabel, opt);
        }
    }
private:
    QHash<QString, QColor> m_Colors;
};

class TabWidget : public QTabWidget
{
public:
    TabWidget(QWidget* parent = 0) : QTabWidget(parent)
    {
        QHash<QString, QColor> dict;
        dict["Tab1"] = QColor("yellow");
        dict["Tab2"] = QColor("#87ceeb");
        dict["Tab3"] = QColor("#90EE90");
        dict["Tab4"] = QColor("pink");
        dict["Tab5"] = QColor("#800080");
        dict["Tab6"] = QColor("yellow");
        dict["Tab7"] = QColor("yellow");
        dict["Tab8"] = QColor("#87ceeb");
        setTabBar(new TabBar(dict));
    }
};
#endif // TABWIDGET_H

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值