Qt编写上下界面切换效果/前进到下一个界面/后退到上一个页面/零件工艺及管理设计系统

一、前言说明

上下切换界面的效果在网页上还是比较常见的,也就是后退可以切换到上一个打开的界面,前进可以切换到当前页面的下一个打开过的页面,如果没有上一个下一个则不切换,一般这种功能是一些年纪比较大的人常用,年轻人可能首选单击对应的菜单或者按钮去切换到自己想要的界面,而不是通过上下按钮去切换。如果只有一级菜单,那这个功能实现还是非常简单的,只需要记住对应切换过的界面的索引即可,每当切换到一个页面,则加入对应的索引。而如果还有二级菜单,则还需要记住对应的二级页面的子页面的索引,先切换到一级页面,然后切换到二级页面,这个是本功能的最大难点。

算法思路:

  1. 定义跳转索引存储切换到的页面,前进和后退按钮单击的时候改变,同时在主动单击了菜单按钮的时候自动移到末尾
  2. 定义跳转时间存储最后触发跳转的时间,避免跳转产生的页面切换记录到跳转队列中,只有用户单击按钮的切换才需要存储
  3. 定义跳转队列存储页面标识,格式(一级菜单索引_二级菜单索引),比如系统设置对应 6_0 6_1
  4. 添加跳转页面标识中需要对重复的页面进行过滤,比如用户单击了重复的按钮
  5. 一级菜单和二级菜单所在的页面关联全局跳转信号进行判断处理
  6. 主界面一级菜单切换,需要判断第一个标识切换到对应的子页面
  7. 子界面二级菜单切换,需要判断第一个标识是否正确,然后再判断第二个标识切换到对应的子页面
  8. 堆栈窗体切换前都判断下是否已经在
  9. 页面跳转带了标识和参数,参数可以存储各种数据集合用于查询处理等

二、效果图

QQ截图20240507114850

QQ截图20240507115055

QQ截图20240507114842

三、功能特点

四、相关地址

  1. 国内站点:https://gitee.com/feiyangqingyun
  2. 国际站点:https://github.com/feiyangqingyun
  3. 个人作品:https://blog.csdn.net/feiyangqingyun/article/details/97565652

五、相关代码

#include "dbdata.h"DbConnThread *DbData::DbLocal = 0;int DbData::UserLogID = 0;int DbData::JumpIndex = 0;
QDateTime DbData::JumpTime = QDateTime::currentDateTime().addDays(-1);
QStringList DbData::JumpPages = QStringList();
void DbData::appendJumpPage(const QString &jumpPage, bool checkExist, bool checkTime)
{//超过最大数则移除最前面的int count = JumpPages.count();if (count >= 50) {JumpPages.removeFirst();}//过滤重复的页面+跳转页面产生的if (count > 0) {QString jumpLast = JumpPages.last();if (checkExist && jumpLast == jumpPage) {return;}QDateTime now = QDateTime::currentDateTime();if (checkTime && abs(now.secsTo(DbData::JumpTime)) <= 1) {return;}}//添加页面信息JumpPages << jumpPage;//一旦切换过页面则重置索引到最后//这里很容易误解需要-1,其实上面刚刚添加过所有又+1了JumpIndex = count;//qDebug() << TIMEMS << "appendJumpPage" << JumpIndex << JumpPages;
}#include "frmjumppage.h"
#include "ui_frmjumppage.h"
#include "qthelper.h"frmJumpPage::frmJumpPage(QWidget *parent) : QWidget(parent), ui(new Ui::frmJumpPage)
{ui->setupUi(this);this->initForm();this->initIcon();
}frmJumpPage::~frmJumpPage()
{delete ui;
}void frmJumpPage::initForm()
{//通过弱属性机制设置当前面板的按钮为圆形ui->widget->setProperty("shape", "circle");ui->btnBackward->setToolTip("后退");ui->btnForeward->setToolTip("前进");//全局换肤颜色变了自动更新图标connect(AppEvent::Instance(), SIGNAL(changeStyle()), this, SLOT(initIcon()));
}void frmJumpPage::initIcon()
{//设置按钮图标CommonNav::setIconBtn(ui->widget);
}void frmJumpPage::on_btnBackward_clicked()
{if (DbData::JumpIndex > 0) {DbData::JumpIndex--;QString type = DbData::JumpPages.at(DbData::JumpIndex);AppEvent::Instance()->slot_jumpPage(type, "");}
}void frmJumpPage::on_btnForeward_clicked()
{if (DbData::JumpIndex < DbData::JumpPages.count() - 1) {DbData::JumpIndex++;QString type = DbData::JumpPages.at(DbData::JumpIndex);AppEvent::Instance()->slot_jumpPage(type, "");}
}

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

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

相关文章

【题解】P1131 [ZJOI2007] 时态同步

P1131 [ZJOI2007] 时态同步 题目传送门题目大意: 给你一棵带边权的树,求出使所有叶节点到根节点的路程相同的最少操作数(每次操作边权加 1 )STEP 1. 看到这个题目后,我们就可以联想到一棵树了,具体来讲: \(n\) …

阿里云怎么做静态网站求一个免费的企业邮箱

验证电脑是否安装python 1.winr输入cmd 2.在黑窗口输入 python.exe 3.不是命令不存在就说明python环境安装完成 抓取快手视频 1.在phcharm应用中新建一个项目 3.新建一个python文件 4.选择python文件,随便起一个名字后按回车 5.安装requests pip install requests 6.寻找需要的…

电商网站设计是干什么的怎么开网店做代理

程序跑出下面的异常&#xff1a;com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: 违反唯一约束条件 (EOMS3.SYS_C0024492)&#xff0c;参考下面的文章了解到我的程序可能是序列的问题。&#xff08;果然是序列产生的最小值设置的太小&#xff0c;将序列值设置大之后…

LGP9120 [NOIP 2022.5] 密码锁 学习笔记

LGP9120 [NOIP 2022.5] 密码锁 学习笔记 洛谷链接 前言 这道 \(\text{LOCK}\) 是二三年春测的最后一道题。作为一道 \(\texttt{CNDS}\),因为随机化算法的存在而显得有点黯然失色。然而,将这道题对扫描线的(相对)复…

深入解析:OpenCV CUDA模块图像处理------创建CUDA加速的Canny边缘检测器对象createCannyEdgeDetector()

深入解析:OpenCV CUDA模块图像处理------创建CUDA加速的Canny边缘检测器对象createCannyEdgeDetector()pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

中小企业网站制作407网站后台管理系统进不去怎么办

MySQL单列索引是我们使用MySQL数据库中经常会见到的&#xff0c;MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解&#xff0c;下面就为您分析两者的主要区别&#xff0c;供您参考学习。 为了形象地对比两者&#xff0c;再建一个表&#xff1a; CREATE TABLE myInde…

网站设计弹窗厦门seo外包公司

PS&#xff1a;基于一点小小兴趣&#xff0c;写了这篇笔记。 点构图 中心点构图 将主体放到画面中心。突出主体&#xff0c;但会显得有些平庸没有太出彩的地方&#xff0c;较为呆板。拍摄人物的话可以结合景色拍摄一些人物表达出明显情绪或者动作充满活力的姿态。 三分点构图…

机器人技术奖学金项目助力STEM教育发展

某机构机器人部门宣布2022年"第一天奖学金"14位获奖者,该项目支持来自 underrepresented 背景的学生攻读机器人、工程、计算机科学等领域的硕士学位,提供全额奖学金、实习机会和行业导师指导。机器人技术奖…

三、Sqoop 全量导入核心命令 - 实践

三、Sqoop 全量导入核心命令 - 实践2025-10-07 09:05 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

喀什做网站wordpress活动召集插件

spark的集群主要有三种运行模式standalone、yarn、mesos&#xff0c;其中常被使用的是standalone和yarn&#xff0c;本文了解一下什么是standalone运行模式&#xff0c;并尝试搭建一个standalone集群 一、standalone模式 standalone模式&#xff0c;是spark自己实现的&#xf…

手机怎么做优惠券网站怎么样黑进网站后台

----------------| 本文目录 |---------------- 1. 进程1.1 基本概念1.2 描述进程 - PCB1.2.1 task_struct - PCB的一种1.2.2 task_struct 内容分类 1.3 组织进程1.4 查看进程1.5 通过系统调用获取进程标示符1.6 通过系统调用创建进程 - fork初识 2. 进程状态2.1 看看Linux内核…

网站备案注销找哪个部门网站建设 阳江

时光飞逝&#xff0c;一转眼24年的第一个季度已经过去了&#xff0c;回望这3个多月&#xff0c;感触颇多。首先&#xff0c;24年从一个一心只读圣贤书&#xff0c;全身心投入在技术上的研发工程师&#xff0c;转变为一个团队的小leader。从我个人对自己的定位来说&#xff0c;我…

SAP ABAP 事务码 RZ12 里的 Max Number of WPs Used 参数的作用介绍

在 SAP 系统中,Max Number of WPs Used 参数在事务码 RZ12 中的 RFC 服务器组配置中扮演了非常关键的角色。这个参数定义了在该服务器组中可以使用的工作进程(Work Process, WP)的最大数量。工作进程是 SAP 系统中执…

中国煤炭建设协网站wordpress怎么装修网页

为什么要学习设计模式&#xff1f; 要知道设计模式就是软件工程的方法经验的总结&#xff0c;也是可以认为是过去一段时间软件工程的一个最佳实践&#xff0c;要理解&#xff0c;不要死记硬背。掌握这些方法后&#xff0c;可以让你的程序获得以下好处&#xff1a; 代码重用性…

建设银行 北京招聘网站学校如何建设网站

1. 引言 本文将从Web应用程序处理请求时需要用户信息&#xff0c;同时HTTP又是无状态协议这个矛盾点出发。从该问题出发&#xff0c;简单描述了解决该问题的Token 机制&#xff0c;进而引出Cookie的实现方案。 基于此我们将详细描述Cookie的规范&#xff0c;然后详细描述具体…

广州专业的网站建设公司哪家好黄骅在线

刚刚接触Mendix低代码两周&#xff0c;花了一周在b站看初级视频然后考完初级&#xff0c;第二周开始做个列表查询感觉照葫芦画瓢没啥难度。但最近要求写个导出列表数据&#xff0c;在mendix社区翻了翻&#xff0c;这个功能算是常见的。找了mendix官方提供的Docs磕磕盼盼才实现了…

busybox 没有 clear 命令吗

是的,BusyBox 默认不包含 clear 命令。 替代方案 1. 使用 echo 命令bash 复制下载echo -e "\033c"或者bash 复制下载printf "\033c"2. 使用快捷键 在终端中按 Ctrl + L 也可以清屏 3. 创建别名…

实用指南:Hive SQL 中 BY 系列关键字全解析:从排序、分发到分组的核心用法

实用指南:Hive SQL 中 BY 系列关键字全解析:从排序、分发到分组的核心用法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

高阶数据结构——并查集 - 详解

高阶数据结构——并查集 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

网站建设方案范文网站建设详细报价

继续炒股。第一题是买卖股票的最佳时机IIIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/description/&#xff0c;与上题不同的是&#xff0c;本题要求买卖的次数要限制在2次以内。对上题的dp数组&#xff0c;显然要增加它的状态以适应题目要求。对于遍历…