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

公安科技信息化建设 素材 网站软文广告的案例

公安科技信息化建设 素材 网站,软文广告的案例,广州的房地产网站建设,中国室内设计网官网总裁第三代软件开发-实现需求长时间未操作返回登录界面 文章目录 第三代软件开发-实现需求长时间未操作返回登录界面项目介绍实现需求长时间未操作返回登录界面实现思路用户操作监控QML 逻辑处理 关键字: Qt、 Qml、 QTimer、 timeout、 eventFilter 项目介绍 欢迎…
头图

第三代软件开发-实现需求长时间未操作返回登录界面

文章目录

  • 第三代软件开发-实现需求长时间未操作返回登录界面
    • 项目介绍
    • 实现需求长时间未操作返回登录界面
      • 实现思路
      • 用户操作监控
      • QML 逻辑处理

关键字: QtQmlQTimertimeouteventFilter

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

实现需求长时间未操作返回登录界面

实现思路

在主窗口类中定义一个计时器对象QTimer *timer和一个时间间隔,用于记录用户最后一次操作的时间。

QTimer *timer;
int idleTime;

在构造函数中初始化计时器,并连接计时器的timeout()信号到一个槽函数。

timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &MainWindow::checkIdleTime);

在主窗口类中实现一个事件过滤器函数eventFilter(),用于监测用户的操作事件。在该函数中,如果接收到鼠标点击、键盘按键或移动事件,则更新计时器记录的时间。

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{if (event->type() == QEvent::KeyPress || event->type() == QEvent::MouseButtonPress ||event->type() == QEvent::MouseMove){idleTime = 0; // 重置计时}return QObject::eventFilter(obj, event);
}

在主窗口的showEvent()函数中设置事件过滤器,以便开始监测用户操作事件。

void MainWindow::showEvent(QShowEvent *event)
{QWidget::showEvent(event);qApp->installEventFilter(this);idleTime = 0; // 重置计时timer->start(1000); // 启动计时器,每秒触发一次 timeout() 信号
}

实现槽函数checkIdleTime(),在该函数中检查空闲时间是否超过设定的阈值。如果超过,则显示登录界面,并停止计时器。

void MainWindow::checkIdleTime()
{idleTime++;if (idleTime >= MAX_IDLE_TIME){qApp->removeEventFilter(this); // 停止事件过滤器timer->stop(); // 停止计时器// 显示登录界面的代码showLoginDialog();}
}

通过以上步骤,我们可以实现长时间未操作后返回登录界面的功能。在用户进行任何操作时,会重置计时器的时间;若用户在一段时间内没有操作,计时器会超过预设的阈值,触发返回登录界面的操作。需要根据实际情况自行调整MAX_IDLE_TIME的值,以秒为单位。同时,需要在主窗口类中添加与登录界面相关的自定义函数showLoginDialog(),来显示登录界面。

如果你碰巧看来我上一篇文章【第三代软件开发-TabView】,而且你还看我的另外一篇已经发表的文章https://blog.csdn.net/z609932088/article/details/130926692?spm=1001.2014.3001.5501

image-20230728225427116

那么就已经知道怎么做了吧。

用户操作监控

用户能操作什么呢,键鼠和触屏,应该没有其他的吧,所以咱们这里只需要处理这些,这部分在我上一篇已经发布的博文中已经说了,咱们直接就附代码凑字数了。

bool XXXX::eventFilter(QObject *obj, QEvent *event)
{/*** 捕获键盘事件**/if( event->type() == QEvent::KeyPress ||                    // 键盘按下event->type() == QEvent::MouseMove ||                   // 鼠标移动event->type() == QEvent::MouseButtonPress ||            // 鼠标按键按下event->type() == QEvent::Wheel ||                       // 鼠标滚轮事件event->type() == QEvent::TouchBegin)                    // 屏幕触屏事件{m_lockScreenTimer->start(m_timerLong);setLockScreen(false);}
#ifdef QT_NO_DEBUG/*** 禁止正常关闭程序**/if(event->type() == QEvent::Close && !m_closeSystem)event->ignore();
#endifreturn QObject::eventFilter(obj,event);
}

注意哦,这里是C++的代码,我们需要把这个注册成QML可以识别的模块,这里还有就是要注意,我这个事建过滤器是安装给了QApplication。代码如下

QApplication::instance()->installEventFilter(this);

QML 逻辑处理

    XXXX{id: keymonitortimerLong: UserProfile.screenProtectTime                                     // 屏保时间onLockScreenChanged:{if(tabview_mainFrame.currentIndex === 0){if(lockScreen){tabview_mainFrame.getTab(0).item.lockScreen()}elsetabview_mainFrame.getTab(0).item.unLockScreen()return}if(tabview_mainFrame.getTab(1).item){if(lockScreen && !(tabview_mainFrame.getTab(1).item.frameIndex === 1 || tabview_mainFrame.getTab(1).item.frameIndex === 0)){tabview_mainFrame.currentIndex = 0;tabview_mainFrame.getTab(0).item.lockScreen()tabview_mainFrame.getTab(1).item.signalLockScreen()}elsetabview_mainFrame.getTab(0).item.unLockScreen()}else{if(lockScreen){tabview_mainFrame.currentIndex = 0;tabview_mainFrame.getTab(0).item.lockScreen()}elsetabview_mainFrame.getTab(0).item.unLockScreen()}}}

这里不需要咱们做过多解读,因为有部分代码是为了业务,即在某一模式下不能锁屏,就和咱们看电影全屏不能进屏保一个道理。


博客签名2021
http://www.dtcms.com/wzjs/306655.html

相关文章:

  • 学做网站可以赚钱吗门户网站推广方案
  • 国外网站做freelancer品牌推广方案思维导图
  • 子网站用织梦系统网站推广费用一般多少钱
  • 网站名称更改需要多久网络营销策划名词解释
  • 厦门网站建设seo自己在家怎么做跨境电商
  • 微网站 pc端网站开发排名前50名免费的网站
  • 枝江网站建设万网域名交易
  • 祥网站建设营销网络的建设有哪些
  • 天津+交友+网站建设搜索引擎是指什么
  • html5做动态网站建设seo怎么优化关键词排名培训
  • 中国十大建筑设计院广告投放优化师
  • 为什么选择做游戏网站百度指数上多少就算热词
  • 一个人可以做几个网站负责人企业网站的推广方法有哪些
  • 网站建立之间不安全如何解决seo日常工作
  • 做外贸哪个英文网站好计算机培训短期速成班
  • 帮别人做网站 别人违法西安网站seo厂家
  • 响应式网站怎么制作优化排名
  • 做NBA网站目的河南新闻头条最新消息
  • 淄博高端网站如何seo网站推广
  • 关于公路建设的网站网站搜索引擎优化案例
  • 网站备案的重要性能打开各种网站的搜索引擎
  • 做网站用phpcms还是免费注册网页网址
  • 厦门做个网站多少钱营销管理培训课程
  • bob网站建设淘宝友情链接怎么设置
  • 巴彦淖尔专业做网站的武汉seo霸屏
  • 做网站宽度济南全网推广
  • 网站 建设可行性报告如何进行网站的宣传和推广
  • 公司注销 网站备案seo技术自学
  • 关于干外贸的一些好的学习网站网站提交收录软件
  • 淄博手机网站开发公司每日一则小新闻