fix: 修复ocr程序崩溃问题

Description: 修复ocr程序崩溃问题,添加退出标志

Log: 与程序崩溃有关
Change-Id: I0388af1ad4b5555263beaac0584325e468bbb611
This commit is contained in:
liuminghang 2021-07-07 14:12:26 +08:00
parent d106fb94cd
commit 887a3a3e0d
2 changed files with 7 additions and 1 deletions

View File

@ -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);

View File

@ -102,6 +102,7 @@ private:
QShortcut *m_scAddView = nullptr;
QShortcut *m_scReduceView = nullptr;
int m_isEndThread = 1;
signals:
void sigResult(const QString &);