QtabBar文本和图标

时间:2011-05-30 13:46:49

标签: c++ qt qtabbar

您好我想在QtabBar小部件中的标签栏的每个标签中的图标下方放置图标和文字。默认情况下,文本和图标彼此相邻设置我想在另一个下面显示一个。我们怎么做呢。

1 个答案:

答案 0 :(得分:3)

似乎只有一种方法可以改变图标的​​位置 - 重新实现QTabBar的paintEvent。 像这样的代码可能会有所帮助:

class MyTabBar : public QTabBar
{
    ...
protected:
    void paintEvent(QPaintEvent *) {
        QStylePainter painter(this);
        for(int i = 0; i < 3; ++i) {
            QStyleOptionTabV2 option;
            initStyleOption(&option, i);
            painter.drawItemPixmap(option.rect, Qt::AlignTop|Qt::AlignHCenter, option.icon);
            painter.drawItemText(option.rect, Qt::AlignBottom|Qt::AlignHCenter, palette(), 1, option.text);
        }
    }
};