В общем решил добавить табам RichText по средствам label но почему-то табы не отображаются. Текст с них читается - т.е. все должно работать, но на QTabWidget просто маленькие пустые табы без текста, может что я еще забыл переопределить?
Код:
//RichTextTabBar.h
class RichTextTabBar : public QTabBar
{
Q_OBJECT
public:
void setTabText(int index, const QString& text);
QString tabText(int index) const;
private:
int mTabWidth;
int mTabHeight;
};
//RichTextTabBar.cpp
#include "richtexttabbar.h"
#include <QLabel>
void RichTextTabBar::setTabText(int index, const QString &text)
{
QLabel* label = new QLabel(text);
label->setFixedSize(mTabWidth, mTabHeight);
label->setStyleSheet("padding-top:0px; padding-bottom:0px; padding-left:5px; padding-right:5px;");
setTabButton(index, QTabBar::LeftSide, label);
}
QString RichTextTabBar::tabText(int index) const
{
return static_cast<QLabel*>(tabButton(index, QTabBar::LeftSide))->text();
}
//RichTextTabWidget.h
#include <QTabWidget>
#include "richtexttabbar.h"
class RichTextTabWidget : public QTabWidget
{
Q_OBJECT
public:
RichTextTabWidget(QWidget* parent = 0);
void setTabText(int index, const QString &label);
QString tabText(int index) const;
protected:
RichTextTabBar *tabBar() const;
};
//RichTextTabWidget.cpp
#include "richtexttabwidget.h"
RichTextTabWidget::RichTextTabWidget(QWidget *parent) :
QTabWidget(parent)
{
setTabBar(new RichTextTabBar());
}
void RichTextTabWidget::setTabText(int index, const QString &label)
{
tabBar()->setTabText(index, label);
}
QString RichTextTabWidget::tabText(int index) const
{
return tabBar()->tabText(index);
}
RichTextTabBar *RichTextTabWidget::tabBar() const
{
return static_cast<RichTextTabBar*>(QTabWidget::tabBar());
}