2
0
forked from Ivasoft/DSView

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); setContextMenuPolicy(Qt::NoContextMenu);
_key_vaild = false; _key_vaild = false;
_last_key_press_time = high_resolution_clock::now();
} }
void MainWindow::setup_ui() void MainWindow::setup_ui()
@@ -1106,6 +1107,14 @@ namespace pv
{ {
return true; 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()) switch (ke->key())
{ {

View File

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