File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66#include < QMetaObject>
77#include < QDateTime>
88#include < qaction.h>
9+ #include < qcoreevent.h>
910#include < spdlog/spdlog.h>
1011#include < QPushButton>
1112#include < QComboBox>
@@ -214,6 +215,7 @@ CameraWidget::CameraWidget(QWidget* parent)
214215{
215216 setWindowTitle (" 摄像头预览" );
216217 setMinimumSize (800 , 600 );
218+ this ->installEventFilter (this );
217219
218220 mainLayout = new QVBoxLayout (this );
219221 menuBar = new QMenuBar (this );
@@ -340,6 +342,7 @@ CameraWidget::CameraWidget(QWidget* parent)
340342 resultDisplay->horizontalHeader ()->setSectionResizeMode (3 , QHeaderView::Stretch); // 内容拉伸
341343
342344 resultDisplay->setAlternatingRowColors (true );
345+ resultDisplay->installEventFilter (this );
343346 mainLayout->addWidget (resultDisplay);
344347 }
345348 {
@@ -400,6 +403,16 @@ CameraWidget::CameraWidget(QWidget* parent)
400403
401404}
402405
406+ bool CameraWidget::eventFilter (QObject* obj, QEvent* event) {
407+ if (obj == resultDisplay && event->type () == QEvent::FocusOut) {
408+ resultDisplay->clearSelection ();
409+ }
410+ if (obj != resultDisplay && event->type () == QEvent::MouseButtonPress) {
411+ resultDisplay->clearFocus ();
412+ }
413+ return QWidget::eventFilter (obj, event);
414+ }
415+
403416void CameraWidget::onCameraIndexChanged (int index)
404417{
405418 if (cameraStarted) {
Original file line number Diff line number Diff line change @@ -60,6 +60,16 @@ class CameraWidget : public QWidget
6060 void stopCamera ();
6161
6262protected:
63+ /* *
64+ * @brief 事件过滤器函数
65+ *
66+ * 用于捕获特定事件并进行处理,例如清除表格选择状态
67+ * @param obj 事件目标对象
68+ * @param event 事件对象
69+ * @return 如果事件被处理则返回 true,否则返回 false
70+ */
71+ bool eventFilter (QObject* obj, QEvent* event) override ;
72+
6373 /* *
6474 * @brief 窗口隐藏事件处理函数
6575 *
You can’t perform that action at this time.
0 commit comments