Qt 把连续两次单击当成双击
2024-08-24 08:57:58
方法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 " ;
}
}
}
最新文章
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
- DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
- css li 不换行(布局,内容)
- Java系列,《Java核心技术 卷1》,chapter 13,集合
- Codeforces Round #257 (Div. 1) C. Jzzhu and Apples (素数筛)
- _vsnprintf 用法
- hdu 5067 Harry And Dig Machine
- Layer弹层组件 二次扩展,项目中直接使用。
- ip地址与整数相互转换
- JAVA 实现tail -f 日志文件监控功能
- 应用负载均衡之LVS(三):使用ipvsadm以及详细分析VS/DR模式
- 分布式改造剧集2---DIY分布式锁
- Spring Cloud Alibaba基础教程:Nacos配置的多环境管理
- keepalived+nginx负载均衡+ApacheWeb实现高可用
- Tsinghua 2018 DSA PA2简要题解
- html/css的学习之路(2)
- 将 数据库中的结果集转换为json格式(三)
- maven pom添加oracle11驱动
- linux学习思维导图(转)