16,787
社区成员




#include <QtGui>
class CustomTabStyle : public QProxyStyle
{
public:
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
const QSize &size, const QWidget *widget) const
{
QSize s = QProxyStyle::sizeFromContents(type, option, size, widget);
if (type == QStyle::CT_TabBarTab)
{ s.transpose();
s.rwidth()=70;
s.rheight()=70;
}
return s;
}
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
if (element == CE_TabBarTabLabel)
{
if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option))
{
QStyleOptionTab opt(*tab);
//opt.shape = QTabBar::RoundedNorth;
opt.text = tr("Hello");
//QIcon icon(":/Resources/icon2.ico");
//opt.icon = icon;
opt.palette.setCurrentColorGroup(QPalette::Disabled);
opt.state |= QStyle::State_Sunken;
QProxyStyle::drawControl(element, &opt, painter, widget);
return;
}
}
if (element == CE_TabBarTab)
{
painter->drawText(5,8,"1123");
//painter->setBackground(QBrush(Qt::red, Qt::SolidPattern));
}
QProxyStyle::drawControl(element, option, painter, widget);
}
};
ui.myTabWidget->setStyle(new CustomTabStyle);