qt tabwidget切换_qtabwidget tab样式

qt tabwidget切换_qtabwidget tab样式感谢https://blog.csdn.net/skyztttt/article/details/52448992QTabWidget默认的Tab方向是水平的,从属性设置更改tabPosition=west后的效果如下图最终效果图#ifndefMH1_H#defineMH1_H#include<QMainWindow>#include<QPainter&gt…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

感谢 https://blog.csdn.net/skyztttt/article/details/52448992

QTabWidget默认的 Tab方向是水平的,从属性设置更改 tabPosition=west后的效果如下图

qt tabwidget切换_qtabwidget tab样式

最终效果图

qt tabwidget切换_qtabwidget tab样式

#ifndef MH1_H
#define MH1_H

#include <QMainWindow>
#include <QPainter>
#include <QProxyStyle>
#include <QStyleOptionTab>

class CustomTabStyle : public QProxyStyle
{
public:
    /* sizeFromContents
     *  用于设置Tab标签大小
     * 1.获取原标签大小
     * 2.宽高切换
     * 3.强制宽高
     * 4.return
     * */
    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();
            s.rwidth() = 120; // 设置每个tabBar中item的大小
            s.rheight() = 44;
        }
        return s;
    }

    /* drawControl
     *  画控件
     * 1.过滤CE_TabBarTabLabel
     * 2.选择状态下的背景绘制
     *      a.获取Rect
     *      b.保存旧的画笔
     *      c.设置新画笔
     *      d.画 Rect
     *      e.恢复旧的画笔
     * 3.设定Text对齐及选中/非选中状态下的Text颜色
     * 4.过滤CE_TabBarTab,对其进行绘制
     * */
    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))
            {
                QRect allRect = tab->rect;

                if (tab->state & QStyle::State_Selected) {
                    painter->save();
                    painter->setPen(0x89cfff);
                    painter->setBrush(QBrush(0x89cfff));
                    QRect nrct = allRect.adjusted(6, 6, -6, -6);
                    painter->drawRect(allRect.adjusted(6, 6, -6, -6));
                    painter->restore();
                }
                QTextOption option;
                option.setAlignment(Qt::AlignCenter);
                if (tab->state & QStyle::State_Selected) {
                    painter->setPen(0xf8fcff);
                }
                else {
                    painter->setPen(0x5d5d5d);
                }

                painter->drawText(allRect, tab->text, option);
                return;
            }
        }

        if (element == CE_TabBarTab) {
            QProxyStyle::drawControl(element, option, painter, widget);
        }
    }
};


#endif // MH1_H

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192986.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 基于云计算与大数据应用开发的论述

    基于云计算与大数据应用开发的论述基于云计算与大数据应用开发的论述作者:虞XX摘要:云计算与大数据作为IT行业的顶尖技术,备受人们关注。在生活中大数据无处不在,社会上的各行各业都有着大数据留下的痕迹,可以说大数据很好的融入了我们的生活;因此,大数据对人类的社会生产和生活带来了重大而深远的影响;同时,大数据时代的来临,以及社会生产的需要,迫使…

  • activiti 任务节点 处理人设置

    activiti 任务节点 处理人设置1.1.1.前言我们在使用activiti工作流引擎的时候,最常用的肯定是任务节点,因为在OA系统、审批系统、办公自动化系统中核心的处理就是流程的运转,流程的运转依赖于人员如何设置,人员的设置是非常重要的一个环节,所以说如果能让activiti工作流引擎运转的核心,就必须要支持强大的人员组织架构设计。下面我们先说一下activiti工作流引擎自身支持的可以直接使用的地方。我…

  • Bug.PotPlayer播放视频上下、左右翻转

    Bug.PotPlayer播放视频上下、左右翻转2018/8/8 PotPlayer作为一款全能、绿色的视频播放器倍受喜爱。在使用中偶尔可能会出现播放视频上下倒置、左右翻转的情况,一时让人摸不着头脑。其实是误触了快捷键导致图像颠倒,再次按下快捷键即可恢复。上下倒置的情况,这时在播放界面按下“Ctrl+V”快捷键;界面左上角提示“图像上下翻转:关闭”,视频播放恢复正常。左右翻转时,如果无字幕其实并不影响观看;这时按下快捷键“Ctrl+…

  • db2有没有rownum_row_number() over order by

    db2有没有rownum_row_number() over order byrank和rownumber都是自动生成序号,后面都可以跟partitionby分组和orderby排序。不同之处在于,rownumber在orderby后面的字段,排序字段数值相等时,rownumber字段依次递增。   rank在orderby后面的字段,排序字段数值相等时,rownumber都相同,直接跳到下一个不同的序号。selectrank

  • html幻灯片图片切换效果代码,jquery的幻灯片图片切换效果代码分享

    html幻灯片图片切换效果代码,jquery的幻灯片图片切换效果代码分享本文实例讲述了jquery的幻灯片图片切换效果。分享给大家供大家参考。具体如下:这是一款基于jquery的幻灯片图片切换效果代码,有缩略图和标题,可以自定义标题。运行效果图:——————-查看效果下载源码——————-小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。(1)在head区域引入CSS样式:(2)js代码://$(do…

  • VirtualBox安装Debian6的方法和步骤(详细)

    VirtualBox安装Debian6的方法和步骤(详细)下面是用VirtualBox安装Debian6的方法和步骤l新建一个文件夹,用于存放虚拟硬盘,如Debianl打开VirtualBox,点击新建l输入虚拟机名称,Debian_6l给虚拟机分配

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号