当前位置: 首页 > news >正文

《QT实用小工具·四十九》QT开发的轮播图

1、概述
源码放在文章末尾

该项目实现了界面轮播图的效果,包含如下特点:
左右轮播
鼠标悬浮切换,无需点击
自动定时轮播
自动裁剪和缩放不同尺寸图片
任意添加、插入、删除
单击事件,支持索引和自定义文本
界面美观,圆角、阴影、卡片内偏移、非线性并行动画、渐变切换等
与其他的轮播图不同,在图片切换的同时,每张图片内部还有一丝丝的“漂移”效果。除了带来灵活的视觉效果外,还使得左右缩略图露出的部分可以很好的显示偏向中心的内容。

另外,在两图交替的那一瞬间,采用了很微妙的渐变消失特效,从而不会产生瞬间变换的闪屏感觉,这是其它轮播图都未能做到的。

项目demo演示如下所示:
在这里插入图片描述

项目部分代码如下所示:

#include <QPainter>
#include <QPainterPath>
#include "sidehidelabel.h"SideHideLabel::SideHideLabel(QWidget *parent) : QLabel(parent)
{
}SideHideLabel *SideHideLabel::copy(const SideHideLabel *other)
{SideHideLabel* label = new SideHideLabel(other->parentWidget());label->setGeometry(other->geometry());label->sideOffset = other->sideOffset;label->startX = other->startX;label->radius = other->radius;label->pixmap = other->pixmap;return label;
}void SideHideLabel::setPixmap(const QPixmap &pixmap, double sideMaxOffset)
{
//    QLabel::setPixmap(pixmap);this->pixmap = pixmap;this->startX = -sideMaxOffset; // 单边的长度
}double SideHideLabel::getMaxOffset() const
{return -startX;
}void SideHideLabel::paintEvent(QPaintEvent *e)
{
//    QLabel::paintEvent(e);
//    return ;QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);painter.setRenderHint(QPainter::SmoothPixmapTransform);QPainterPath path;path.addRoundedRect(rect(), radius, radius);painter.setClipPath(path);QPixmap newPixmap = pixmap.scaledToHeight(this->height(), Qt::FastTransformation);painter.drawPixmap(int(startX + sideOffset), 0,newPixmap.width(), newPixmap.height(),newPixmap);
}void SideHideLabel::setSideOffset(double of)
{this->sideOffset = of;update();
}double SideHideLabel::getSideOffset() const
{return sideOffset;
}

源码下载

相关文章:

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果&#xff0c;包含如下特点&#xff1a; 左右轮播 鼠标悬浮切换&#xff0c;无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件&#xff0c;支持索引和自定义文本 界面美观&#xff0c;圆…...

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站&#xff1a;初雪云-提供一站式App上传发布解决方案...

39-1 Web应用防火墙 - WAF应用程序层绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、双重URL编码绕过 什么是URL编码 URL编码是一种将特殊字符转为%加上其ASCII值的方式,以确保在URL中传输时不会被误解或导致错误。例如,字母"s"的URL编码是"…...

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…...

linux下sd卡的备份与还原

在Ubuntu上制作SD卡备份镜像&#xff0c;你可以使用dd命令。以下是一个基本的步骤和示例代码&#xff1a; 插入SD卡到电脑。确定SD卡设备路径&#xff0c;使用lsblk或sudo fdisk -l命令。确定备份镜像文件的路径。使用dd命令制作备份。 示例代码&#xff1a; bash# 查看连接的…...

Spring Boot项目中集成Logback作为日志框架-笔记

在Spring Boot项目中集成Logback作为日志框架是一个标准做法&#xff0c;因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤&#xff1a; 1. 默认集成 Spring Boot会自动配置Logback&#xff0c;所以通常情况下&#xff0c;你不需要添加任何额外的依赖或…...

Python_GUI框架 PyQt 与 Pyside6的介绍

Python_GUI框架 PyQt 与 Pyside6的介绍 一、简介 在Python的GUI&#xff08;图形用户界面&#xff09;开发领域&#xff0c;PyQt和PySide6是两个非常重要的工具包。它们都基于Qt库&#xff0c;为Python开发者提供了丰富的GUI组件和强大的功能。当然Python也有一些其他的GUI工…...

Github入门

GitHub 入门指南&#xff1a;从零开始学习使用 GitHub GitHub 是全球最大的代码托管平台之一&#xff0c;不仅是开发者们交流与协作的重要场所&#xff0c;也是学习与分享优秀代码的宝库。无论你是一位新手开发者还是经验丰富的专家&#xff0c;GitHub 都是你必须掌握的利器之…...

【Web漏洞指南】XSS漏洞详细指南

【Web漏洞指南】XSS漏洞详细指南 概述XSS的三种类型执行任意 JS 代码的方式在原始HTML中注入绕过手法在 HTML标记内注入绕过手法在JavaScript代码中注入绕过手法其他绕过手法XSS常见有效载荷检索Cookies窃取页面内容键盘记录器查找内部IP地址端口扫描器自动填充密码捕获窃取 Po…...

Labels and Databases for Mac:强大的标签与数据库管理工具

Labels and Databases for Mac是一款集标签制作与数据库管理于一体的强大工具&#xff0c;专为Mac用户打造&#xff0c;旨在提供高效、便捷的标签制作与数据管理体验。 这款软件拥有丰富的内置标签格式&#xff0c;用户可轻松创建各种标签、信封和卡片&#xff0c;满足个性化需…...

视频降噪算法 Meshflow 介绍

介绍 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow&#xff0c;它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field)&#xff0c;其运动矢量 (motion vectors) 仅在网格顶点 (mesh vertexes) 处…...

情感类ppt素材

小清新手绘插画风毕业季毕业相册同学录画册纪念册PPT下载 - 觅知网这是一张关于清新毕业相册的PPT模板&#xff0c;清新风格设计&#xff0c;加上风为装饰元素&#xff0c;包含毕业相册、毕业季、毕业、同学、纪念等主题内容&#xff0c;也可用作毕业相册PPT、毕业季PPT、毕业P…...

专家解读 | NIST网络安全框架(1):框架概览

随 着信息技术的快速发展&#xff0c;组织面临着越来越严峻的网络安全挑战。NIST网络安全框架&#xff08;NIST Cybersecurity Framework&#xff0c;CSF&#xff09;是一个灵活的综合性指南&#xff0c;旨在协助各类组织建立、改进和管理网络安全策略&#xff0c;以加强网络安…...

【NodeMCU实时天气时钟温湿度项目 3】连接SHT30传感器,获取并显示当前环境温湿度数据(I2C)

今天&#xff0c;我们开始第三个专题&#xff1a;连接SHT30温湿度传感器模块&#xff0c;获取当前环境实时温湿度数据&#xff0c;并显示在1.3寸TFT液晶显示屏上。 第一专题内容&#xff0c;请参考 【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计…...

Unity3D DOTween

简单介绍一下 DOTween 插件的使用。 导入插件 先到 Asset Store 获取 DOTween 插件&#xff0c;然后在 Package Manager 的 My Assets 中搜索&#xff0c;下载并导入插件。 导入后&#xff0c;会自动弹出一个窗口&#xff0c;提示需要先对插件进行配置。 点击上图中的按钮&am…...

罗宾斯《管理学》第13版/教材讲解/考研真题视频课程/网课

本课程是罗宾斯《管理学》&#xff08;第13版&#xff09;精讲班&#xff0c;为了帮助参加研究生招生考试指定考研参考书目为罗宾斯《管理学》&#xff08;第13版&#xff09;的考生复习专业课&#xff0c;我们根据教材和名校考研真题的命题规律精心讲解教材章节内容。 序号名…...

docker-compose启动mysql4.7环境搭建

注意&#xff1a; 下面挂载的目录需要自己创建文件夹比如&#xff1a; /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/log/mysql&#xff08;数据文件&#xff09; /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/lib/mysql&#xff08;日志文件&#xff09;…...

StarryCoding入门教育赛2 题解 C++代码(推荐学习)

比赛地址&#xff1a;https://www.starrycoding.com/contest/6 比赛介绍 系列赛名称&#xff1a;StarryCoding 入门教育赛难度&#xff1a;语法~较低时长&#xff1a; 1.5 1.5 1.5小时比赛时间&#xff1a;约每2-3天一场&#xff0c;一般为晚上18:30~20:00赛后题解&#xff1…...

【JAVA进阶篇教学】第九篇:MyBatis-Plus用法介绍

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第九篇&#xff1a;MyBatis-Plus用法介绍。 在 MyBatis-Plus 3.5.0 中&#xff0c;LambdaQueryWrapper支持多种条件构造方式&#xff0c;除了等于&#xff08;eq&#xff09;、不等于&#xff08;ne&#xff09;、大于&a…...

实时音视频通信的主要矛盾及解决方法

实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾及解决方法实时音视频通信的主要矛盾矛盾的解决方法增加带宽减少数据量适当增加延时提高网络质量快速准确地评估带宽 总结参考 实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾 实时音视频通信的主…...

拉罗替尼Larotrectinib常见副作用ALT升高及疲劳如何有效应对【海得康】

在拉罗替尼&#xff08;Larotrectinib&#xff09;治疗NTRK融合阳性实体瘤的临床实践中&#xff0c;ALT升高与疲劳堪称两大最具代表性的不良反应。前者直指肝脏安全底线&#xff0c;后者则如影随形地侵蚀着患者的日常功能与生活质量。根据FDA批准的处方信息、三项关键临床试验&…...

Windows 11 LTSC系统恢复微软商店:3分钟快速安装完整指南

Windows 11 LTSC系统恢复微软商店&#xff1a;3分钟快速安装完整指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC版本…...

YOLO11涨点优化:数据增强 | 引入AutoAugment自动化搜索增强策略,告别手工调参,挖掘最优数据配方

引言:YOLO11训练,为何你的mAP总是差一口气? 训练一个YOLO11模型并不难——几行Python代码就能跑起来。但真正让人崩溃的是:数据标注花了两周,超参数调了三天,mAP就涨了0.3个点。你反复调整旋转角度、翻转概率、HSV色彩偏移的幅度,试图找到那组“最佳”的组合,却发现自…...

JumpServer堡垒机源码部署避坑实录:从MySQL权限到Node版本,我踩过的那些坑

JumpServer堡垒机源码部署避坑实录&#xff1a;从MySQL权限到Node版本&#xff0c;我踩过的那些坑 部署开源堡垒机JumpServer时&#xff0c;看似简单的make install背后藏着无数技术暗礁。去年我们团队在金融级内网环境部署JumpServer时&#xff0c;经历了从数据库权限锁死到前…...

Java 8 Optional搭配flatMap,如何优雅地避免NPE链式调用?一个完整案例讲透

Java 8 Optional搭配flatMap&#xff1a;彻底解决嵌套对象空指针问题的工程实践 在Java开发中&#xff0c;处理多层嵌套对象的属性访问时&#xff0c;空指针异常&#xff08;NullPointerException&#xff09;就像房间里的大象——人人都知道存在&#xff0c;却常常选择视而不见…...

WinRAR分卷压缩 vs 7-Zip分卷压缩:哪个更适合你?一次讲清区别、选型和实操

WinRAR分卷压缩 vs 7-Zip分卷压缩&#xff1a;深度对比与场景化选型指南 在数字文件传输与存储的日常场景中&#xff0c;大文件处理始终是个绕不开的痛点。无论是设计师需要发送PSD源文件给客户&#xff0c;还是开发人员要共享虚拟机镜像&#xff0c;当文件体积突破邮箱附件限…...

如何永久保存微信聊天记录:3步完成专业级数据备份方案

如何永久保存微信聊天记录&#xff1a;3步完成专业级数据备份方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机丢失、系统升级或更换设备&#xff0c;而…...

使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验 在开发一个需要集成大模型能力的C语言桌面应用时&#xff0c;我们面临…...

情感化导航系统:基于上下文感知与自然语言生成的智能交互实践

1. 项目概述&#xff1a;一个能“夸夸”的导航技能最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“kuakua-navigator-skills”。光看名字&#xff0c;你可能会有点摸不着头脑——“kuakua”是什么&#xff1f;导航技能又是什么&#xff1f;这俩词放一起&#xff0c;感觉…...

C++11(三)lambda表达式、function、bind

一、lambda 1. lambda表达式语法 lambda表达式本质是一个匿名函数对象&#xff08;这个原理部分会讲到&#xff09;&#xff0c;不过与普通函数只能定义在全局或类内部不同&#xff0c;它可以直接定义在函数内部。lambda表达式格式&#xff1a; 代码语言&#xff1a;javascr…...