QtabBar текст и значок - PullRequest
2 голосов
/ 30 мая 2011

Привет, я хотел бы разместить значок и текст под значком на каждой вкладке панели вкладок в виджете QtabBar. по умолчанию текст и значок расположены рядом друг с другом, я хотел бы отображать один под другим. как мы можем это сделать.

1 Ответ

3 голосов
/ 17 октября 2011

Кажется, есть только один способ изменить расположение значков - переопределить QTabBar's 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);
        }
    }
};
...