CGH_TabBar.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #pragma execution_character_set("utf-8")
  3. #include <QtWidgets\qtabbar.h>
  4. #include <QtWidgets\QStylePainter>
  5. #include <QtWidgets\QStyleOptionTab>
  6. class CGH_TabBar : public QTabBar {
  7. public:
  8. QSize tabSizeHint(int index) const {
  9. QSize s = QTabBar::tabSizeHint(index);
  10. s.transpose();
  11. return s;
  12. }
  13. protected:
  14. void paintEvent(QPaintEvent* /*event*/) {
  15. QStylePainter painter(this);
  16. QStyleOptionTab opt;
  17. for (int i = 0; i < count(); i++)
  18. {
  19. initStyleOption(&opt, i);
  20. painter.drawControl(QStyle::CE_TabBarTabShape, opt);
  21. painter.save();
  22. QSize s = opt.rect.size();
  23. s.transpose();
  24. QRect r(QPoint(), s);
  25. r.moveCenter(opt.rect.center());
  26. opt.rect = r;
  27. QPoint c = tabRect(i).center();
  28. painter.translate(c);
  29. painter.rotate(90);
  30. painter.translate(-c);
  31. painter.drawControl(QStyle::CE_TabBarTabLabel, opt);
  32. painter.restore();
  33. }
  34. }
  35. };