diff --git a/src/mainwidget.cpp b/src/mainwidget.cpp index 18683df..b8caabf 100644 --- a/src/mainwidget.cpp +++ b/src/mainwidget.cpp @@ -39,6 +39,8 @@ MainWidget::MainWidget(QWidget *parent) : MainWidget::~MainWidget() { + //程序即将结束,线程标志结束 + m_isEndThread = 0; // m_mainGridLayout->addLayout(m_buttonHorizontalLayout, 1, 0, 1, 1); if (m_mainGridLayout && m_buttonHorizontalLayout) { m_mainGridLayout->removeItem(m_buttonHorizontalLayout); @@ -384,7 +386,10 @@ void MainWidget::openImage(const QImage &img, const QString &name) m_loadImagethread = QThread::create([ = ]() { QMutexLocker locker(&m_mutex); m_result = TessOcrUtils::instance()->getRecogitionResult(m_currentImg, ResultType::RESULT_STRING); - emit sigResult(m_result.result); + //判断程序是否退出 + if (1 == m_isEndThread) { + emit sigResult(m_result.result); + } }); } connect(m_loadImagethread, &QThread::finished, m_loadImagethread, &QObject::deleteLater); diff --git a/src/mainwidget.h b/src/mainwidget.h index 65acaf4..faa4a9d 100644 --- a/src/mainwidget.h +++ b/src/mainwidget.h @@ -102,6 +102,7 @@ private: QShortcut *m_scAddView = nullptr; QShortcut *m_scReduceView = nullptr; + int m_isEndThread = 1; signals: void sigResult(const QString &);