22081-11-16 鼠标双击事件和鼠标移动事件
.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 鼠标双击事件和鼠标移动事件相关推荐
- html 左键右键双击事件,html中在鼠标双击元素时触发的事件属性ondblclick
实例Copy Text 浏览器支持 IE Firefox Chrome Safari Opera 所有主流浏览器都支持 ondblclick 属性. 定义和用法 ondblclick 属性在鼠标双击元 ...
- Revit API Hook 之 拦截鼠标双击元素事件
阅读本文章前应具有一定编程基础和 Window API 相关知识 第一步,先封装HookBase抽象类,因所有Hook的都具有注册.卸载逻辑,且注册.卸载大同小易.如下: public abstrac ...
- 笔记本USB鼠标如何设置左手鼠标
[align=left][size=x-large][color=olive]控制面板--> 鼠标 --> 硬件 看看有没有usb外置鼠标,如果有就 控制面板-鼠标,双击打开,单击鼠标键选 ...
- MFC鼠标单击截获鼠标双击事件,且无法记录单击的数据的解决方案
遇到的问题: 鼠标点击会截断鼠标双击的事件,无法保存椭圆的数据.也就是说双击执行的过程是OnLButtonDown,OnLButtonUp,OnLButtonDblClk,OnLButtonUp.并不 ...
- java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...
树控件: JTree:声明树控件 声明树的节点: DefaultMutableTreeNode dd=new DefaultMutableTreeNode("传入树节点名称"); ...
- C#联合Halcon 自定义控件鼠标双击响应事件
自定义控件鼠标双击响应事件 1. halcon的自定义控件 2. HMouseDown事件 1. halcon的自定义控件 这两天做项目发现一个问题,halcon自带的控件hWindowControl ...
- java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
爱学习的小伙伴们,可能都学习过java,但是你知道java鼠标双击事件是怎么实现的吗?不知道的话跟着小编一起来学习了解java鼠标双击事件吧. java鼠标双击事件实例介绍 public class ...
- 如何在AutoCAD中实现鼠标双击事件
摘要:本文为在AutoCAD ObjectARX二次开发中遇到的鼠标双击事件提供了多种解决方法. 在AutoCAD编程中,开发者可能会有这样一个好想法,或者用户有这么一个需求:当用鼠标双击某个实体的时 ...
- 2020.11.18第十三章 事件(事件处理程序;事件对象;事件类型:UI事件;焦点事件;鼠标与键盘事件 变动事件 模拟事件)
事件处理程序 html事件处理程序(直接在html中书写script) <!-- //#### 事件处理程序 //html时间程序 可以直接在HTML文件中写,而且还可以引用其他地方的方法和函数 ...
- js常用对象:点击、双击、onload事件、鼠标相关、onblur事件和onfocus事件等;通过循环给多个元素添加事件、通过addEventListener() 方法 监听事件函数...
1.通过标签内部添加事件 (1)onclick事件:单击事件 (2)ondbclick事件:双击事件 (3)onload事件:只能在body中使用,入口函数里有:window. .οnlοad=f ...
最新文章
- 人工智能将给我们的高等教育带来怎样的机遇和挑战?
- 【转】弧度和角度的转换
- 【剑指offer-Java版】12打印1到最大的n位数
- Hadoop家族学习路线图
- YYH算组合数(NOIP模拟赛Round 6)
- 苹果确认部分AirPods Pro存在静电噪音等声音问题 将免费更换
- javascript判断日期奇偶_JavaScript_简介学习4
- Solr 4.10.3 导入 Mysql 数据
- 精进:如何成为一个很厉害的人--作者:采铜
- CSDN 写作小技巧(3)——学会在 CSDN 中插入超链接
- html以鼠标为中心放大网页,鼠标滚轮网页放大缩小
- 如何自制拼音卡片(用WORD或者EXCEL制作)
- 石头剪刀布程序流程图_民间传统体育游戏 | 石头剪刀布
- 我们都应该停止三种测试实践
- MySQL 8.0+版本 导入.csv文件错误,出错号:1148 The used command is not allowed with this MySQL version问题
- Web答辩问题整合一
- CAD软件中如何统一文字字高?
- matlab实现多项式的运算,Matlab 多项式运算
- linux下的source命令(.命令)解释及应用
- 中国交通物流行业规模预测及未来发展趋势分析报告2021-2027年