class CustomTabStyle : public QProxyStyle
{
public:
{
QSize s
= QProxyStyle
::sizeFromContents(type, option, size, widget
);
if (type
== QStyle::CT_TabBarTab) s.transpose();
return s;
}
{
if (element == CE_TabBarTabLabel)
{
{
QProxyStyle::drawControl(element, &opt, painter, widget);
return;
}
}
QProxyStyle::drawControl(element, option, painter, widget);
}
};
int main(int argc, char *argv[])
{
tb.setStyle(new CustomTabStyle);
tb.addTab("Tab 1");
tb.addTab("Tab 2");
tb.show();
return a.exec();
}
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();
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::RoundedWest;
QProxyStyle::drawControl(element, &opt, painter, widget);
return;
}
}
QProxyStyle::drawControl(element, option, painter, widget);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTabBar tb;
tb.setStyle(new CustomTabStyle);
tb.addTab("Tab 1");
tb.addTab("Tab 2");
tb.show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks