diff --git a/DSView/pv/mainwindow.cpp b/DSView/pv/mainwindow.cpp index 53455852..e2e21f57 100644 --- a/DSView/pv/mainwindow.cpp +++ b/DSView/pv/mainwindow.cpp @@ -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(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()) { diff --git a/DSView/pv/mainwindow.h b/DSView/pv/mainwindow.h index fe026994..a481c26b 100644 --- a/DSView/pv/mainwindow.h +++ b/DSView/pv/mainwindow.h @@ -31,6 +31,7 @@ #include "interface/icallbacks.h" #include "eventobject.h" #include +#include 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;