From d593f7321482dad009bce724c803dde79817b9fd Mon Sep 17 00:00:00 2001 From: xiepengfei Date: Wed, 21 Jan 2026 13:36:12 +0800 Subject: [PATCH] fix: Fix the issue where the input box cannot lose focus Fix the issue where the input box cannot lose focus Log: Fix the issue where the input box cannot lose focus --- src/source/page/compresssettingpage.cpp | 27 +++++++++++++++++++++++++ src/source/page/compresssettingpage.h | 15 ++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/source/page/compresssettingpage.cpp b/src/source/page/compresssettingpage.cpp index 8a2f6e4f3..bb53f6544 100644 --- a/src/source/page/compresssettingpage.cpp +++ b/src/source/page/compresssettingpage.cpp @@ -1087,3 +1087,30 @@ TypeLabel *CompressSettingPage::getClickLbl() const // qDebug() << "getClickLbl called"; return m_pClickLbl; } + +void CompressSettingPage::mousePressEvent(QMouseEvent *event) +{ + // 点击空白区域时,清除输入框焦点 + if (m_pFileNameEdt && m_pFileNameEdt->lineEdit()->hasFocus()) { + qDebug() << "Clearing focus from file name edit"; + m_pFileNameEdt->lineEdit()->clearFocus(); + } + if (m_pSavePathEdt && m_pSavePathEdt->lineEdit()->hasFocus()) { + qDebug() << "Clearing focus from save path edit"; + m_pSavePathEdt->lineEdit()->clearFocus(); + } + if (m_pPasswordEdt && m_pPasswordEdt->lineEdit()->hasFocus()) { + qDebug() << "Clearing focus from password edit"; + m_pPasswordEdt->lineEdit()->clearFocus(); + } + if (m_pSplitValueEdt && m_pSplitValueEdt->hasFocus()) { + qDebug() << "Clearing focus from split value edit"; + m_pSplitValueEdt->clearFocus(); + } + if (m_pCommentEdt && m_pCommentEdt->hasFocus()) { + qDebug() << "Clearing focus from comment edit"; + m_pCommentEdt->clearFocus(); + } + + DWidget::mousePressEvent(event); +} diff --git a/src/source/page/compresssettingpage.h b/src/source/page/compresssettingpage.h index 6ecbcb7a6..58cadd3b4 100644 --- a/src/source/page/compresssettingpage.h +++ b/src/source/page/compresssettingpage.h @@ -76,6 +76,12 @@ class CompressSettingPage : public DWidget */ QString getComment() const; + /** + * @brief 是否定制模式 + * @return + */ + bool isOrderMode(); + /** * @brief eventFilter 事件过滤,处理键盘事件等 * @param watched @@ -83,12 +89,13 @@ class CompressSettingPage : public DWidget * @return */ bool eventFilter(QObject *watched, QEvent *event) override; + +protected: /** - * @brief 是否定制模式 - * @return + * @brief mousePressEvent 鼠标点击事件,点击空白区域取消输入框焦点 + * @param event */ - bool isOrderMode(); - + void mousePressEvent(QMouseEvent *event) override; private: /** * @brief initUI 初始化界面