diff --git a/deviceservice.cpp b/deviceservice.cpp index 5e7ad0e..45ae392 100644 --- a/deviceservice.cpp +++ b/deviceservice.cpp @@ -100,6 +100,13 @@ quint8 DeviceService::keyDetection() return key.flag; #else + //判定上次有行为,且上次行为产生时间间隔大于组合行为最长时间间隔,说明行为结束(不在判定组合行为),发送行为信号,并清空key.flag + if(key.flag != None && lastFlagTime.msecsTo(QTime::currentTime()) >= DblClick_Difftime) + { + emit keyWorked(key.flag); + key.flag = None; + } + KeyFlag flag = None; //清空按键标志(行为) //获取当前按键状态 @@ -123,19 +130,19 @@ quint8 DeviceService::keyDetection() } //判定组合行为 -// if(flag != None) -// { -// if(flag == Click) -// { -// if(key.flag == Click && (lastFlagTime.msecsTo(QTime::currentTime())) >= DblClick_Difftime) -// { -// flag = Dbl_Click; -// }else if(key.flag == Dbl_Click && (lastFlagTime.msecsTo(QTime::currentTime())) >= DblClick_Difftime) -// { -// flag = Tri_Click; -// } -// } -// } + if(flag != None) + { + if(flag == Click) + { + if(key.flag == Click) + { + flag = Dbl_Click; + }else if(key.flag == Dbl_Click) + { + flag = Tri_Click; + } + } + } //记录上一行为及时间 if(flag != key.flag)