12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #pragma once
- #pragma execution_character_set("utf-8")
- #include <QtWidgets\qtabbar.h>
- #include <QtWidgets\QStylePainter>
- #include <QtWidgets\QStyleOptionTab>
- class CGH_TabBar : public QTabBar {
- public:
- QSize tabSizeHint(int index) const {
- QSize s = QTabBar::tabSizeHint(index);
- s.transpose();
- return s;
- }
- protected:
- void paintEvent(QPaintEvent* /*event*/) {
- QStylePainter painter(this);
- QStyleOptionTab opt;
- for (int i = 0; i < count(); i++)
- {
- initStyleOption(&opt, i);
- painter.drawControl(QStyle::CE_TabBarTabShape, opt);
- painter.save();
- QSize s = opt.rect.size();
- s.transpose();
- QRect r(QPoint(), s);
- r.moveCenter(opt.rect.center());
- opt.rect = r;
- QPoint c = tabRect(i).center();
- painter.translate(c);
- painter.rotate(90);
- painter.translate(-c);
- painter.drawControl(QStyle::CE_TabBarTabLabel, opt);
- painter.restore();
- }
- }
- };
|