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;尽管…

为什么模方崩过后重新新建工程打开会提示“OSG读取Node失败”?

为什么模方崩过后重新新建工程打开会提示“OSG读取Node失败”&#xff1f; 答&#xff1a;瓦块数据中可能有空文件或者不符合osgb组织结构的文件&#xff0c;可以检查移除。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的…

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

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

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

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

第9章-第3节-Java中的自定义注解

注解&#xff1a;有Override,我们把它称为重写的注解。那么注解到底什么呢&#xff1f;我们能不能自定义注解。 1、概念&#xff1a; 注解是一种能被添加到java代码中的元数据&#xff0c;类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影…

低端单片机彩色屏幕的内存占用疑惑

前言 问题&#xff1a; 假设320*240的rgb565屏幕&#xff0c;320*240*2153600&#xff0c;内存已经150K了&#xff0c;而很多低端单片机接口速度虽然勉强能用&#xff0c;但内存只有20K/8K&#xff0c;整屏的显存是绝对放不下的&#xff0c;只刷一部分都占很多内存&#xff0…

重建大师程序卡死过一次以后,再打开就显示“工程被本地机器打开”,怎么解决?

答&#xff1a;可以检查下本机是不是开了多个重建大师软件&#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…

JNA调用C++动态库,返回二维数组

1.下载eclipse创建一个项目&#xff0c;jdk选择1.8的版本&#xff0c;更高的需要配置下 package mydemo; import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.LongByReference; import com.sun.jna.ptr.…

js获取当前日期方法

//获取当前日期函数 gettDate() { let date new Date(), obj { year: date.getFullYear(), //获取完整的年份(4位) month: date.getMonth() 1, //获取当前月份(0-11,0代表1月) strDate: date.getDate(), // 获取当前日(1-31) hour: date.getHours(), //获取当前小时(0 ~ 23)…

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

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

Spring 启动过程

博文目录 文章目录 内容总结new AnnotationConfigApplicationContextApplicationContext.refresh底层流程 refresh - invokeBeanFactoryPostProcessorsBeanFactoryPostProcessor 内容总结 Spring启动流程详解 通常&#xff0c;我们说的 Spring 启动&#xff0c;就是构造 Appli…

Debezium发布历史68

原文地址&#xff1a; https://debezium.io/blog/2019/09/05/website-documentation-overhaul/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 网站和文档大修 2019 年 9 月 5 日 作者&#xff1a; 克里斯克兰福…

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

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