.h文件
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QString>
#include <Qt>
#include <QPoint>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void keyPressEvent(QKeyEvent *event);   //重写键盘按下函数void keyReleaseEvent(QKeyEvent *event); //重写键盘抬起函数void mouseMoveEvent(QMouseEvent *event);//重写鼠标移动函数void mousePressEvent(QMouseEvent *event);//重写键鼠标点击函数void mouseReleaseEvent(QMouseEvent *event);//重写鼠标抬起函数void mouseDoubleClickEvent(QMouseEvent *event);//重写鼠标双击函数private:Ui::Widget *ui;
};
#endif // WIDGET_H
//main测试
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
.cpp文件
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QWidget::setMouseTracking(true);
}Widget::~Widget()
{delete ui;
}//键盘按下处理事件函数
void Widget::keyPressEvent(QKeyEvent *event)
{QString msg;msg = event->text() + "被按下   ascii--->" + QString::number(event->key());ui->label_key_press->setText(msg);
}//键盘抬起处理事件函数
void Widget::keyReleaseEvent(QKeyEvent *event)
{QString msg;msg = event->text() + "被抬起   ascii--->" + QString::number(event->key());ui->label_key_release->setText(msg);
}//鼠标按下处理事件函数
void Widget::mousePressEvent(QMouseEvent *event)
{if(event->buttons() == Qt::LeftButton){ui->label_mouse_press->setText("鼠标左键被按下");}else if(event->buttons() == Qt::RightButton){ui->label_mouse_press->setText("鼠标右键被按下");}else if(event->buttons() == Qt::MidButton){ui->label_mouse_press->setText("鼠标中键被按下");}
}//鼠标抬起处理事件函数
void Widget::mouseReleaseEvent(QMouseEvent *event)
{if(event->button() == Qt::LeftButton){ui->label_mouse_release->setText("鼠标左键被抬起");}else if(event->button() == Qt::RightButton){ui->label_mouse_release->setText("鼠标右键被抬起");}else if(event->button() == Qt::MidButton){ui->label_mouse_release->setText("鼠标中键被抬起");}
}//鼠标移动处理事件函数
void Widget::mouseMoveEvent(QMouseEvent *event)
{
//    QPoint where = event->QMouseEvent::globalPos();
//    QString where_x = QString::number(where.x());
//    QString where_y = QString::number(where.y());
//    QString where_all = where_x + "," + where_y;
//    ui->label_mouse_move->setText(where_all);QPointF where = event->localPos();QString where_x = QString::number(where.x());QString where_y = QString::number(where.y());QString where_all = where_x + "," + where_y;ui->label_mouse_move->setText(where_all);}//鼠标双击处理事件函数
void Widget::mouseDoubleClickEvent(QMouseEvent *event)
{if(event->buttons() == Qt::LeftButton){ui->label_mouse_doubleclick->setText("鼠标被双击");}
}

22081-11-16 鼠标双击事件和鼠标移动事件相关推荐

  1. html 左键右键双击事件,html中在鼠标双击元素时触发的事件属性ondblclick

    实例Copy Text 浏览器支持 IE Firefox Chrome Safari Opera 所有主流浏览器都支持 ondblclick 属性. 定义和用法 ondblclick 属性在鼠标双击元 ...

  2. Revit API Hook 之 拦截鼠标双击元素事件

    阅读本文章前应具有一定编程基础和 Window API 相关知识 第一步,先封装HookBase抽象类,因所有Hook的都具有注册.卸载逻辑,且注册.卸载大同小易.如下: public abstrac ...

  3. 笔记本USB鼠标如何设置左手鼠标

    [align=left][size=x-large][color=olive]控制面板--> 鼠标 --> 硬件 看看有没有usb外置鼠标,如果有就 控制面板-鼠标,双击打开,单击鼠标键选 ...

  4. MFC鼠标单击截获鼠标双击事件,且无法记录单击的数据的解决方案

    遇到的问题: 鼠标点击会截断鼠标双击的事件,无法保存椭圆的数据.也就是说双击执行的过程是OnLButtonDown,OnLButtonUp,OnLButtonDblClk,OnLButtonUp.并不 ...

  5. java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...

    树控件: JTree:声明树控件 声明树的节点: DefaultMutableTreeNode dd=new DefaultMutableTreeNode("传入树节点名称"); ...

  6. C#联合Halcon 自定义控件鼠标双击响应事件

    自定义控件鼠标双击响应事件 1. halcon的自定义控件 2. HMouseDown事件 1. halcon的自定义控件 这两天做项目发现一个问题,halcon自带的控件hWindowControl ...

  7. java监听鼠标双击_java鼠标双击事件 java鼠标双击监听

    爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击事件是怎么实现的吗?不知道的话跟着小编一起来学习了解java鼠标双击事件吧. java鼠标双击事件实例介绍 public class ...

  8. 如何在AutoCAD中实现鼠标双击事件

    摘要:本文为在AutoCAD ObjectARX二次开发中遇到的鼠标双击事件提供了多种解决方法. 在AutoCAD编程中,开发者可能会有这样一个好想法,或者用户有这么一个需求:当用鼠标双击某个实体的时 ...

  9. 2020.11.18第十三章 事件(事件处理程序;事件对象;事件类型:UI事件;焦点事件;鼠标与键盘事件 变动事件 模拟事件)

    事件处理程序 html事件处理程序(直接在html中书写script) <!-- //#### 事件处理程序 //html时间程序 可以直接在HTML文件中写,而且还可以引用其他地方的方法和函数 ...

  10. js常用对象:点击、双击、onload事件、鼠标相关、onblur事件和onfocus事件等;通过循环给多个元素添加事件、通过addEventListener() 方法 监听事件函数...

    1.通过标签内部添加事件 (1)onclick事件:单击事件 (2)ondbclick事件:双击事件 (3)onload事件:只能在body中使用,入口函数里有:window.   .οnlοad=f ...

最新文章

  1. 人工智能将给我们的高等教育带来怎样的机遇和挑战?
  2. 【转】弧度和角度的转换
  3. 【剑指offer-Java版】12打印1到最大的n位数
  4. Hadoop家族学习路线图
  5. YYH算组合数(NOIP模拟赛Round 6)
  6. 苹果确认部分AirPods Pro存在静电噪音等声音问题 将免费更换
  7. javascript判断日期奇偶_JavaScript_简介学习4
  8. Solr 4.10.3 导入 Mysql 数据
  9. 精进:如何成为一个很厉害的人--作者:采铜
  10. CSDN 写作小技巧(3)——学会在 CSDN 中插入超链接
  11. html以鼠标为中心放大网页,鼠标滚轮网页放大缩小
  12. 如何自制拼音卡片(用WORD或者EXCEL制作)
  13. 石头剪刀布程序流程图_民间传统体育游戏 | 石头剪刀布
  14. 我们都应该停止三种测试实践
  15. MySQL 8.0+版本 导入.csv文件错误,出错号:1148 The used command is not allowed with this MySQL version问题
  16. Web答辩问题整合一
  17. CAD软件中如何统一文字字高?
  18. matlab实现多项式的运算,Matlab 多项式运算
  19. linux下的source命令(.命令)解释及应用
  20. 中国交通物流行业规模预测及未来发展趋势分析报告2021-2027年

热门文章

  1. 谷歌蜘蛛池-悟空蜘蛛池
  2. java开发程序员辛苦吗,震撼来袭免费下载!
  3. 基于51单片机的自行车里程表
  4. java爬取并下载US六仔搭建酷狗TOP500歌曲
  5. 如何制作U盘启动盘进行Win10重装?
  6. 怎么做自媒体才能赚钱?不要干货不要鸡汤,只谈赚钱!
  7. 我与Android有个约会
  8. Mac 应用推荐合集 - 收藏集 - 掘金
  9. C#程序设计入门与实例视频教程
  10. 【Java mail 入门教程】第三讲 接收邮件