zoukankan      html  css  js  c++  java
  • QTabWidget改变tabBar位置 并改变文字方向

    一、

    二、

    #ifndef CUSTOMTABBAR_H
    #define CUSTOMTABBAR_H
    #include <QStyleOptionTab>
    #include <QStylePainter>
    #include <QTabBar>
    
    class CustomTabBar:public QTabBar
    {
    public:
        CustomTabBar();
        QSize tabSizeHint(int index) const override;
    protected:
        void paintEvent(QPaintEvent *) override;
    };
    
    #endif // CUSTOMTABBAR_H
    #include "customtabbar.h"
    
    CustomTabBar::CustomTabBar()
    {
    
    }
    
    QSize CustomTabBar::tabSizeHint(int index) const
    {
        QSize s = QTabBar::tabSizeHint(index);
        s.transpose();
        return s;
    }
    
    void CustomTabBar::paintEvent(QPaintEvent *)
    {
        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();
    
        }
    
    }
    #ifndef KTABWIDGET_H
    #define KTABWIDGET_H
    
    #include <QWidget>
    #include <QTabWidget>
    #include "utility/customtabbar.h"
    class KTabWidget : public QTabWidget
    {
        Q_OBJECT
    public:
        explicit KTabWidget(QWidget *parent = nullptr);
    
    signals:
    
    };
    
    #endif // KTABWIDGET_H
    #include "ktabwidget.h"
    
    KTabWidget::KTabWidget(QWidget *parent)
        : QTabWidget(parent)
    
    {
        this->setTabBar(new CustomTabBar());
        this->setTabPosition(QTabWidget::West);
    }

    使用

        KTabWidget *tabWidget=new KTabWidget(this);
        tabWidget->addTab(saIOMonitor,"IO监控");
        tabWidget->addTab(saIOSet,"I/O设置");
        tabWidget->addTab(saDIDOWidget,"DI/DO功能监视");
  • 相关阅读:
    python 将png图片格式转换生成gif动画
    JetBrains系IDE的设置Pycharm PHPStorm
    Nginx 静态页面POST 请求提示405 Not Allowed
    安装SSL证书 and 根域名跳转www域名
    Linux 安装qt5-designer并集成到Pycharm
    Deepin 自动挂载win NTFS磁盘
    Nginx+DNS负载均衡实现
    swoole websocket服务推送
    Linux版 php5.4 升级php7
    百度 Javascript开发 API
  • 原文地址:https://www.cnblogs.com/ike_li/p/14914139.html
Copyright © 2011-2022 走看看