方法1: 主要通过计时器,在一段时间内的连续两次单击,触发双击事件


void init()
{
  m_nClickCount = 0;
  m_timer = new QTimer(this);
  connect(m_timer, SIGNAL(timeout()), this, SLOT(onKeyOneClick()));
}
void mouseReleaseEvent(QMouseEvent*)
{
if (!m_timer->isActive()) //计数期间,则不重新开始
{
m_timer->start();//300ms是判断双击的时间间隔,不唯一,可根据实际情况改变
}
m_nClickCount += ;
  //300ms 内,两次单击则触发双击效果 ,然后停止计数
if(m_nClickCount == )
{
emit sigClose();
m_nClickCount = ;
m_timer->stop();
}
} void onKeyOneClick()
{
m_timer->stop();
m_nClickCount = ; }

方法2:

void MainWindow::mouseReleaseEvent(QMouseEvent *)
{
static int num = ;
static double time_Start = ;
static double time_End = ; num+=;
if(num == ){
time_Start = (double)clock();
qDebug()<< "num == 1";
if((time_Start - time_End) < ){//连续快速两次单击
//
qDebug()<< "click quickly " << time_Start - time_End ;
}
}
if(num == ){
num = ;
qDebug()<< "num == 2";
time_End = (double)clock();
if((time_End - time_Start) < ){//连续快速两次单击
//
qDebug()<< "click quickly " << time_End - time_Start ;
}
}
}

方法3:

void MainWindow::mouseReleaseEvent(QMouseEvent *)
{
static int num = ;
static struct timeval tpstart,tpend;
float timeuse; num+=;
if(num == ){
gettimeofday(&tpstart,NULL);
// timeuse=(1000000*(tpend.tv_sec-tpstart.tv_sec) + tpend.tv_usec-tpstart.tv_usec)/1000.0;
// qDebug()<< "num == 1 " << timeuse ;
// if(timeuse< 400){//连续快速两次单击
// //
// qDebug()<< "click quickly " ;
// }
}
if(num == ){
num = ;
gettimeofday(&tpend,NULL);
timeuse=(*(tpend.tv_sec-tpstart.tv_sec) + tpend.tv_usec-tpstart.tv_usec)/1000.0;
qDebug()<< "num == 2 " << timeuse;
if(timeuse < ){//连续快速两次单击
//
qDebug()<< "click quickly " ;
}
}
}

Qt 把连续两次单击当成双击的更多相关文章

  1. (转)MFC:Windows如何区分鼠标双击和两次单击

    在Windows平台上,鼠标左键的按下.松开.快速的两次点击会产生WM_LBUTTONDOWN.WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两 ...

  2. Qt:QPushButton 单击、双击响应区分

    开发环境:win10+vs2015+qt5.9.1 背景:QPushButton的双击事件虽然一直有,但是在双击完成之前,总会响应到单击的事件处理或者连接槽,使用很不方便.自己子类化了一个QPushB ...

  3. (转) Windows如何区分鼠标双击和两次单击

    Windows如何区分鼠标双击和两次单击 http://lbsloveldm.blog.hexun.com/12212875_d.html 在Windows平台上,鼠标左键的按下.松开.快速的两次点击 ...

  4. Angular JS中双击事件ng-dblclick避免同时触发两次单击事件ng-click的解决方案

    有些需求中,需要一个元素上既有双击事件,也有单击事件,而两者实现的效果不一样. 这时可以使用ng-dblclick与ng-click来实现需求,但是要避免浏览器将双击事件误认为是两次单击事件,从而出现 ...

  5. javascript双击事件取消默认的两次单击事件

    当一个元素同时具有单击和双击事件时,双击时会触发2次单击和1此双击事件. 双击会:先第1次单击 ,同时触发第2次和双击事件. 造成的不好影响:每次单击事件会延迟执行. <!DOCTYPE htm ...

  6. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验四:按键模块③ — 单击与双击

    实验四:按键模块③ - 单击与双击 实验三我们创建了"点击"还有"长点击"等有效按键的多功能按键模块.在此,实验四同样也是创建多功能按键模块,不过却有不同的有效 ...

  7. jquery 单击和双击事件冲突解决方案

    先看一下点击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown ...

  8. winform里怎样在一个按钮上实现“单击”和“双击”事件?

    Button按钮是没有双击事件(DoubleClick)的. button1.DoubleClick+=new EventHandler(button1_DoubleClick);使用这种方法在双击的 ...

  9. Hololens开发笔记之Gesture手势识别(单击,双击)

    本文使用手势识别实现识别单击及双击手势的功能,当单击Cube时改变颜色为蓝色,当双击Cube时改变颜色为绿色. 手势识别是HoloLens交互的重要输入方法之一.HoloLens提供了底层API和高层 ...

随机推荐

  1. GFS(Google File System,谷歌文件系统)----(1)文件系统简介

    分布式文件系统 系统是构建在普通的.廉价的机器上,因此故障是常态而不是意外 系统希望存储的是大量的大型文件(单个文件size很大) 系统支持两种类型读操作:大量的顺序读取以及小规模的随机读取(larg ...

  2. 【洛谷】P3980 [NOI2008]志愿者招募

    [洛谷]P3980 [NOI2008]志愿者招募 我居然现在才会用费用流解线性规划-- 当然这里解决的一类问题比较特殊 以式子作为点,变量作为边,然后要求就是变量在不同的式子里出现了两次,系数一次为+ ...

  3. oracle经典查询语句

    1. select * from emp;   2. select empno, ename, job from emp;   3. select empno 编号, ename 姓名, job 工作 ...

  4. python 手机App数据抓取实战一

    前言 当前手机使用成为互联网主流,每天手机App产生大量数据,学习爬虫的人也不能只会爬取网页数据,我们需要学习如何从手机 APP 中获取数据,本文就以豆果美食为例,讲诉爬取手机App的流程 环境准备 ...

  5. Python之并行编程笔记

    概述: 非并发: 1 程序由单个步骤序列构成  2 包含独立子任务的程序执行性能低 并发:  1 异步.高效  2 分解子任务.简化流程与逻辑 进程process:1 一个程序的执行实例  2 每个进 ...

  6. Activate注解

    Activate注解 被该注解修饰的接口,扩展类可能会被加载 ProtocolFilterWrapper.buildInvokerChain @Documented @Retention(Retent ...

  7. Vs code 下设置python tasks.json

    { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.jso ...

  8. python 创建es mapping

    import requests def get_(): url = "http://127.0.0.1:9200/indextest/_mapping?pretty" ss = r ...

  9. hdu 6375 度度熊学队列 (链表模拟)

    度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣.  初始时有 N 个空的双端队列(编号为 1 到 N ),你要支持度度熊的 Q 次操作. ①1 u w val 在编号为 u 的队列里加入一个 ...

  10. (三)Redis之数据结构概念以及数据结构之字符串

    一.数据结构 五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set) 二.数据结构之字符串 二进制安全的,存入和 ...