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

海南手机网站建设公司创建网站免费

海南手机网站建设公司,创建网站免费,如何弄网站排名,搞好姓氏源流网站建设文章目录 摘要实现思路键盘鼠标监控百度到的方法我的自己方法 最后 关键字#xff1a; Qt、 Qml、 QInputEvent 、 QStandardItem、 eventFilter 摘要 今日需求#xff1a; 项目中需要实时检测用户是否长时间为操作键盘和鼠标#xff0c;如果超过预设时间未操作键盘和… 文章目录 摘要实现思路键盘鼠标监控百度到的方法我的自己方法 最后 关键字 Qt、 Qml、 QInputEvent 、 QStandardItem、 eventFilter 摘要 今日需求 项目中需要实时检测用户是否长时间为操作键盘和鼠标如果超过预设时间未操作键盘和鼠标则退出到锁屏界面准确的说是启动屏保当用户再次操作键盘或鼠标则进去登录界面及实现长时间未操作键盘鼠标就锁屏的功能。 实现思路 大致的实现想法如上图所示就是启动一个QTimer定时器输入参数就是要规定的微操作时间如果到时间没有检测到键盘和鼠标的操作就出发屏幕保护程序接着持续监听如果依旧为监测到键盘和鼠标操作那就一直停留在屏保画面如果有键盘或鼠标操作那就进入到登录界面。如果检测到了键盘或鼠标操作那就重置定时器是定时器重新开始计时。 题外话 这里因为我的时间是一个大致的时间范围对时间的精确是要求其实没有多高所以这里就直接使用了QTimer但是Qt的定时器那精确性是出了名的所以在对精确性要求比较高的场景下可以使用其他方式实现定时器而不用Qt自带的定时器。 键盘鼠标监控 百度到的方法 这个就有好多了 可知直接重写键鼠事件这个网上一大堆示例代码如下 class MyWidget : public QWidget { public: MyWidget(QWidget *parent nullptr) : QWidget(parent) { setMouseTracking(true); setFocusPolicy(Qt::StrongFocus); } void handleMousePressEvent(QMouseEvent *event) override { if (event-button() Qt::LeftButton) { // 处理鼠标左键按下事件 } else if (event-button() Qt::RightButton) { // 处理鼠标右键按下事件 } else if (event-button() Qt::MiddleButton) { // 处理鼠标中键按下事件 } } void handleMouseMoveEvent(QMouseEvent *event) override { // 处理鼠标移动事件 } void handleMouseReleaseEvent(QMouseEvent *event) override { if (event-button() Qt::LeftButton) { // 处理鼠标左键释放事件 } else if (event-button() Qt::RightButton) { // 处理鼠标右键释放事件 } else if (event-button() Qt::MiddleButton) { // 处理鼠标中键释放事件 } } void handleKeyPressEvent(QKeyEvent *event) override { if (event-key() Qt::Key_Space) { // 处理空格键按下事件 } else if (event-key() Qt::Key_Enter) { // 处理回车键按下事件 } else if (event-key() Qt::Key_Backspace) { // 处理退格键按下事件 } } private: QPoint lastPos_{}; }; 或者使用QInputEvent 和QStandardItem ,示例代码如下 监测键盘事件: void MainWindow::on_pushButton_clicked() { QStandardItem *standardItem new QStandardItem(0); table-appendRow(standardItem); connect(table-model(), QTableModel::rowInserted, this, MainWindow::updateNum); }void MainWindow::updateNum(const QModelIndex index) { if (index.row() 0) { QStandardItem *standardItem static_castQStandardItem*(index.internalPointer()); connect(standardItem, QStandardItem::textChanged, this, []() { qDebug() Key released: standardItem-text(); }); } } 监测鼠标事件: void MainWindow::on_pushButton_clicked() { QStandardItem *standardItem new QStandardItem(0); table-appendRow(standardItem); connect(table-model(), QTableModel::rowInserted, this, MainWindow::updateNum); }void MainWindow::updateNum(const QModelIndex index) { if (index.row() 0) { QStandardItem *standardItem static_castQStandardItem*(index.internalPointer()); connect(standardItem, QStandardItem::textChanged, this, []() { qDebug() Mouse released: standardItem-text(); }); } } 我的自己方法 但是上面都不是我想要的还是太复杂我仅仅想要的就是检测键盘和鼠标操作至于操作了什么我并不关心。所以我开辟的新的方法。我这里使用了Qt 的事建过滤器eventFilter 1 首先安装全局事件过滤器 这我们需要给我们的QApplication安装事建过滤器代码如下 QApplication::instance()-installEventFilter(this);2 在事件过滤器中监听键盘事件和鼠标事件 我们在事件过滤器中只需要比较事件是否为键盘事件或鼠标事件代码如下 /*** 捕获键盘事件**/if(event-type() QEvent::KeyPress || event-type() QEvent::MouseMove || event-type() QEvent::MouseButtonPress){m_lockScreenTimer-start(m_timerLong);setLockScreen(false);}如上述代码我监听了键盘按下事件、鼠标移动事件和鼠标按键按下事件。并且在监听到这三个事件中的其中一个的时候就重置了定时器并且锁屏标志位置位了false 3 实现定时器到时间触发锁屏信号 connect(m_lockScreenTimer,QTimer::timeout,this,[](){setLockScreen(true);m_lockScreenTimer-stop();});上述代码如果到达预定时间这触发对应的槽函数这里我懒得写个函数了直接使用了Lambda表达式主要就是把锁屏标志位置位true, 4 使用Qt的属性系统 因为我参与的项目实际是QML项目所以这里就能体现所Qt属性系统的香了可以直接和QML 中的属性做无缝绑定。代码如下 Q_PROPERTY(bool lockScreen READ lockScreen WRITE setLockScreen NOTIFY lockScreenChanged)最后 因为是实际生产力业务代码不方便暂时完整代码仅分享一个思路供小伙伴们参考如果哪里有不懂的地方或者疑问可以直接留言问我就可以。
http://www.dnsts.com.cn/news/95735.html

相关文章:

  • 企业网站的形式有哪些做暧暧xoxo网站
  • 北京自适应网站建设织梦网站必须下载地址
  • 备案网站忘记密码软件公众号开发
  • 网站建设 東道网络wordpress4.7.4 for sae
  • 哈尔滨微网站建设自助网站建设哪家优惠
  • wap网站建设管理制度vue 做企业网站
  • 网站开发流程可规划为那三个阶段谷歌云 装wordpress
  • 帮忙建设公司网站高端的网站名称
  • 蚂蚁建站夹克定制公司
  • 江苏建设电子信息网站银座网上商城官网
  • 响应式网站手机端尺寸网站建设如何入账
  • 北京网站设计服务陵水网站建设咨询
  • 南京越城建设集团网站大良品牌网站建设
  • 利用小偷程序做网站好网站
  • 福田响应式网站建设服务平台类网站费用
  • 乐山建设企业网站没有网站可以做京东联盟吗
  • 中山网站优化排名免费做网站的
  • 外链网站 英文阿里云wordpress配置
  • itc 做市场分析的网站中国纪检监察网站首页
  • 网站app推广怎么做淘宝怎样优化关键词
  • 中国建设银行官方网站网上银行ppt做书模板下载网站有哪些
  • 我要建设公司网站elementui 企业官网模板
  • 珠海做网站公司wordpress定时功能
  • 做网站贵不汕头做网站优化公司
  • 怎样做网站外链怎样在网站上做办公家具
  • 网站建设单位哪家好网盘网页版
  • 用帝国软件做网站的心得苏州网网站建设
  • 眼科医院网站开发石河子做网站
  • 网站建设怎么申请域名可信网站 收费
  • 提供企业网站建设伊利网站建设水平评价