QTabWidget在tabPosition设置为west时,tab的文字方向默认为从下到上
要将tab的文字方向设置为从上到下,参照如下:
class MyProxyStyle : public QProxyStyle
{
Q_OBJECT
public:
MyProxyStyle(QStyle *parent=0);
~MyProxyStyle();
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const;
private:
};
MyProxyStyle::MyProxyStyle(QStyle *parent)
<span style="white-space:pre"> </span>: QProxyStyle(parent)
{
}
MyProxyStyle::~MyProxyStyle()
{
}
void MyProxyStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
<span style="white-space:pre"> </span>if (element == CE_TabBarTabLabel)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option))
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>QStyleOptionTab opt(*tab);
<span style="white-space:pre"> </span>opt.shape = QTabBar::RoundedEast;
<span style="white-space:pre"> </span>QProxyStyle::drawControl(element, &opt, painter, widget);
<span style="white-space:pre"> </span>return;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>QProxyStyle::drawControl(element, option, painter, widget);
}
ITTabWidget::ITTabWidget(QWidget *parent)
<span style="white-space:pre"> </span>: QTabWidget(parent)
{
<span style="white-space:pre"> </span>QWidget* tempwidget1 = new QWidget();
<span style="white-space:pre"> </span>QWidget* tempwidget2 = new QWidget();
<span style="white-space:pre"> </span>addTab(tempwidget1,"123456");
<span style="white-space:pre"> </span>addTab(tempwidget2,"abcdef");
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>tabBar()->setStyle(new MyProxyStyle());
}