Control the frequency of hot key press

This commit is contained in:
dreamsourcelabTAI 2023-02-24 09:42:53 +08:00
parent 979231c6fe
commit 58d16495fe
2 changed files with 14 additions and 2 deletions

View File

@ -120,6 +120,7 @@ namespace pv
setContextMenuPolicy(Qt::NoContextMenu);
_key_vaild = false;
_last_key_press_time = high_resolution_clock::now();
}
void MainWindow::setup_ui()
@ -1106,6 +1107,14 @@ namespace pv
{
return true;
}
high_resolution_clock::time_point key_press_time = high_resolution_clock::now();
milliseconds timeInterval = std::chrono::duration_cast<milliseconds>(key_press_time - _last_key_press_time);
int64_t time_keep = timeInterval.count();
if (time_keep < 500){
return true;
}
_last_key_press_time = key_press_time;
switch (ke->key())
{

View File

@ -31,6 +31,7 @@
#include "interface/icallbacks.h"
#include "eventobject.h"
#include <QJsonDocument>
#include <chrono>
class QAction;
class QMenuBar;
@ -40,11 +41,12 @@ class QStatusBar;
class QToolBar;
class QWidget;
class QDockWidget;
class AppControl;
class DeviceAgent;
using std::chrono::high_resolution_clock;
using std::chrono::milliseconds;
namespace pv {
class SigSession;
@ -210,6 +212,7 @@ private:
SigSession *_session;
DeviceAgent *_device_agent;
bool _is_auto_switch_device;
high_resolution_clock::time_point _last_key_press_time;
int _key_value;
bool _key_vaild;