C++ 数组分页,经常有用到分页,索性做一个简单封装 已解决

        在项目设计中, 有鼠标滑动需求,但是只能说能力有限,索性使用 php版本的数组分页,解决问题。 经常有用到分页,索性做一个简单封装、

测试用例

  QTime curtime = QTime::currentTime();nHour = curtime.hour();nMin = curtime.minute();nSec = curtime.second();setTimeBtnWidget(nHour, 24, ceil(nHour / 6), 6,1, ui->verticalLayout_10);setTimeBtnWidget(nMin, 60, ceil(nMin / 6), 6, 2, ui->verticalLayout_2);setTimeBtnWidget(nSec, 60, ceil(nSec / 6), 6, 3, ui->verticalLayout_4);

 使用方法

	/*** @breif  : 设置 时间上下按钮* @param  : index 第几个* @param  : count 总数量* @param  : page  第几页* @param  : size  显示数量* @param  : type  类型* @param  : QLayout  布局名称* @return : void* @date   : 2024/01/10 16:28*/void setTimeBtnWidget(int index,int count,int page,int size,int type, QLayout* layout);

  封装函数 


void CCalendarWidget::setTimeBtnWidget(int index,int count,int page,int size,int type, QLayout* layout)
{clearLayout(layout);int  tatakPage = (int)ceil(count / size);int offset = (page - 1) * size;for (int i = 0; i < 8; i++) {QPushButton* pBtn = new QPushButton();if (i == 0){//星期widgetQWidget* upBtnWidget = new QWidget;upBtnWidget->setMaximumWidth(40);//星期布局QHBoxLayout* layoutUpWidget = new QHBoxLayout(upBtnWidget);pBtn->setFixedSize(10, 6);pBtn->setChecked(true);pBtn->setStyleSheet("border-image:url(:/images/Resources/images/CCalendarWidget/upBtn.png);border:none;font-size: 14px;color:#FFFFFF;");pBtn->setCursor(Qt::PointingHandCursor);layoutUpWidget->spacing();layoutUpWidget->addWidget(pBtn);layoutUpWidget->spacing();layout->addWidget(upBtnWidget);connect(pBtn, &QPushButton::clicked, [=]{if (timeIndex >= 0 && timeIndex <= tatakPage){setTimeBtnWidget(timeIndex * size+3,count, timeIndex, size, type, layout);timeIndex--;}else {timeIndex = 0;}});}if (i == 7){   //星期widgetQWidget* downBtnWidget = new QWidget;downBtnWidget->setMaximumWidth(40);//星期布局QHBoxLayout* layoutDownWidget = new QHBoxLayout(downBtnWidget);pBtn->setFixedSize(10, 6);pBtn->setChecked(true);pBtn->setStyleSheet("border-image:url(:/images/Resources/images/CCalendarWidget/downBtn.png);border:none;font-size: 14px;color:#FFFFFF;");pBtn->setCursor(Qt::PointingHandCursor);layoutDownWidget->spacing();layoutDownWidget->addWidget(pBtn);layoutDownWidget->spacing();layout->addWidget(downBtnWidget);connect(pBtn, &QPushButton::clicked, [=]{if (timeIndex >= 0 && timeIndex < tatakPage){setTimeBtnWidget(timeIndex * size + 3,count, timeIndex,size, type, layout);timeIndex++;}else {timeIndex = tatakPage-1;}});}if (i > 0 && i < 7){if ((type == 1 && page * size + i != 24) || (type == 2 && page * size + i != 60) || (type == 3 && page * size + i != 60)){pBtn->setChecked(true);connect(pBtn, &QPushButton::clicked, [=]{int index = pBtn->text().toInt();setTimeBtnWidget(index, count, page, size, type, layout);if (type == 1){nHour = index;}if (type == 2){nMin = index;}if (type == 3){nSec = index;}setTime();});}else {pBtn->setChecked(false);}pBtn->setFixedSize(40, 26);pBtn->setText(QString::number(page * size + i));pBtn->setCursor(Qt::PointingHandCursor);layout->addWidget(pBtn);layout->spacing();}if (page * size + i == index){pBtn->setChecked(true);pBtn->setStyleSheet("background:#0D85FF;");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各种排序算法学习笔记

Docshttps://r0dhfl3ujy9.feishu.cn/docx/XFlEdnqv9oCEoVx7ok8cpc4knnf?fromfrom_copylink如果你认为有错误&#xff0c;欢迎指出&#xff01;

Three.js 镜面反射Reflector 为MeshStandardMaterial增加Reflector能力

效果效果官方案例 区别&#xff1a;官方的案例更像一个镜子 没有纹理等属性 也没有透明度修改 根据源码进行修改为 MeshStandardMaterial实现反射 使用案例 createReflector() {const plane this.helper.create.plane(2, 2);this.helper.add(plane.mesh);plane.mesh.rotat…

juniper EX系列交换机POE配置

PoE&#xff08;Power over Ethernet&#xff0c;以太网供电&#xff0c;又称远程供电&#xff09;是指设备通过以太网接口&#xff0c;利用双绞线对外接PD&#xff08;Powered Device&#xff0c;受电设备&#xff09;设备&#xff08;如IP 电话、无线AP、网络摄像头等&#x…

什么是视频短信,能用在什么地方?

视频短信是指通过106短信将带有视频的短信内容发送到对应的手机中&#xff0c;也称之为点对点的信息传递方式&#xff0c;视频短信可以支持2兆以内的多媒体信息发送&#xff0c;是直接、直观的宣传、沟通方式。 一、怎么就偏偏要找视频短信 根据目前的行情状况&#xff0c;尽管…

3d模型素材亮度和对比度如何调整呢?

1、修改材质参数&#xff1a;打开3ds Max后&#xff0c;选择要调整亮度和对比度的3D模型素材。然后&#xff0c;进入材质编辑器&#xff0c;选择相应的材质球。在材质编辑器中&#xff0c;你可以调整材质的漫反射、反射和高光等参数&#xff0c;这些参数将影响模型的亮度和对比…

C语言实现学生成绩管理系统(单链表)

本次我就用学到的相关链表知识总结回顾一下学生成绩管理系统的实现。 首先还是先创建一个项目&#xff0c;分别创建头文件和源文件&#xff0c;头文件用来声明函数&#xff0c;源文件用来定义函数以及实现学生成绩管理系统。 创建完成后如上图。 先创建一个结构体用来存放学生…

DaisyDisk for mac 中文激活版 可视化磁盘清理工具

DaisyDisk 是一款专为 Mac 设计的磁盘空间分析工具。它以直观、图形化的方式展示硬盘使用情况&#xff0c;帮助用户迅速找到占用空间大的文件和文件夹。通过扫描磁盘&#xff0c;DaisyDisk 生成彩色的扇形图表&#xff0c;每个扇区代表一个文件或文件夹&#xff0c;大小直观反映…

Java多线程并发篇----第十五篇

系列文章目录 文章目录 系列文章目录前言一、偏向锁二、分段锁三、锁优化四、线程基本方法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、偏向锁 Hotspot 的…

肯尼斯·里科《C和指针》第6章 指针(4)实例

肯尼斯里科《C和指针》第6章 指针&#xff08;1&#xff09;-CSDN博客 肯尼斯里科《C和指针》第6章 指针&#xff08;2&#xff09;-CSDN博客 肯尼斯里科《C和指针》第6章 指针&#xff08;3&#xff09;-CSDN博客 6.12 实例 /* ** 计算一个字符串的长度。 */ #include <…

leetcode 349 两个数组的集合

题目 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 示例 2&#xff1a; 输入&#xff1a…

【playwright】新一代自动化测试神器playwright+python系列课程00——playwright安装

playwright安装 本文主要分享由微软开发的实现Web UI自动化测试工具Playwright库&#xff0c;相比于之前学习过selenium库&#xff0c;playwright对于编写自动化代码绝对是更轻松了&#xff0c;因为它支持脚本录制&#xff0c;如果只求简单点可以不用写一行代码就能够实现自动…

网络安全|GitHub 已成为恶意软件传播的严重污染源

Recorded Future 凸显了全球合法平台威胁的上升。 根据 Recorded Future最近 的一份报告&#xff0c;开发者平台GitHub最近已成为黑客用来托管和传播恶意软件的流行工具。 该平台为攻击者提供了将其行为伪装成合法网络流量的能力&#xff0c;这使得跟踪和确定攻击者的身份变得…

ubuntu20.04 deepstream 6.3安装

1.基础环境gstreamer sudo apt install \ libssl-dev \ libgstreamer1.0-0 \ gstreamer1.0-tools \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-ugly \ gstreamer1.0-libav \ libgstreamer-plugins-base1.0-dev \ libgstrtspserver-1.0-0 …

C练习——模拟投掷6000次骰子

题目&#xff1a; 模拟骰子投6000次&#xff0c;并计算每一面出现的概率 解析&#xff1a; 6000次&#xff0c;首先想到用数组记录六个面各出现次数 其次&#xff0c;使用随机数&#xff08;1~6的数&#xff09;模拟骰子 然后统计1~6每个数出现的几次&#xff0c;最后除以6…

倒F天线设计经验分享

一、IFA天线理论分析 为了改善&#xff29;&#xff2c;&#xff21;天线难以使用的缺点&#xff0c;在&#xff29;&#xff2c;&#xff21;天线的基础上再增加一个倒L结构&#xff0c;形成IFA天线&#xff0c;此种天线体积小、易于匹配并具有双极化的特点&#xff0c;而在蓝…

基于springboot的二手车交易系统的设计与实现

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 课题背景 二…

交换机批量巡检、配置软件

使用Python3.8实现&#xff0c;支持huawei\h3c\cisco三种交换机批量巡检或者批量配置。 要求&#xff1a;同一种类型的交换机有相同的登录账号和密码&#xff0c;开启ssh服务。 可以查看mac地址是否漂移或者欺骗、ip地址与MAC对应关系&#xff0c;可以查看是否有环路&#xf…

AI 图像自动补全 Uncrop 工具介绍

ClipDrop Uncrop是一款基于AI的图像自动补全工具&#xff0c;由StabilityAI旗下的Clipdrop开发。通过利用StableDiffusionXL开发的算法和深度学习技术&#xff0c;Uncrop可以对用户上传的图片进行自动扩展和补全&#xff0c;改变图片尺寸&#xff0c;使得图像内容得到更完整的呈…

互联网上门洗衣洗鞋工厂系统搭建;

随着移动互联网的普及&#xff0c;人们越来越依赖手机应用程序来解决生活中的各种问题。通过手机预约服务、购买商品、获取信息已经成为一种生活习惯。因此&#xff0c;开发一款上门洗鞋小程序&#xff0c;可以满足消费者对于方便、快捷、专业的洗鞋服务的需求&#xff0c;同时…

MYSQL第三次作业--单表查询

第三次作业 一、创建worker表 mysql> create table worker(-> 部门号 int(11) not null,-> 职工号 int(11) not null,-> 工作时间 date not null,-> 工资 float(8,2) not null,-> 政治面貌 varchar(10) not null default群众,-> 姓名 varchar(20) not n…