Qt中英文识别OCR纯c++编写
#ifndef OCRAPPLICATION_H
#define OCRAPPLICATION_H
#include "ocrabstractmoveresizewidget.h"
class OCRThreadItem;
class OCRApplicationObject;
namespace Ui {
class OCRApplication;
}
/*! @brief The class of the app main widget.
* @author Greedysky <greedysky@163.com>
*/
class TTK_MODULE_EXPORT OCRApplication : public OCRAbstractMoveResizeWidget
{
Q_OBJECT
TTK_DECLARE_MODULE(OCRApplication)
public:
/*!
* Object contsructor.
*/
explicit OCRApplication(QWidget *parent = nullptr);
~OCRApplication();
/*!
* Get class object instance.
*/
static OCRApplication *instance();
public Q_SLOTS:
/*!
* Application window close.
*/
void quitWindowClose();
/*!
* Open button clicked.
*/
void openButtonClicked();
/*!
* Screenshot button clicked.
*/
void screenshotButtonClicked();
/*!
* Start button clicked.
*/
void startButtonClicked();
/*!
* Clear button clicked.
*/
void clearButtonClicked();
/*!
* Find finished.
*/
void findFinish();
/*!
* Pixmap data Changed.
*/
void pixmapChanged(const QPixmap &pix);
private:
/*!
* Delete all items.
*/
void deleteItems();
/*!
* Detect state changed.
*/
void stateChanged(bool state);
Ui::OCRApplication *m_ui;
int m_count;
OCRApplicationObject *m_applicationObject;
QList<OCRThreadItem*> m_fileList;
static OCRApplication *m_instance;
};
#endif // OCRAPPLICATION_H
#include "ocrapplication.h"
#include "ui_ocrapplication.h"
#include "ocrapplicationobject.h"
#include "ocrfunctionlistuiobject.h"
#include "ocrwidgetutils.h"
#include "ocrcoreutils.h"
#include "ocrgrabwidget.h"
#include "ocrthread.h"
#include "ocruiobject.h"
#ifdef TTK_BUILD_BY_PDF
# include "include/mupdf-qt.h"
#endif
#include <QScrollBar>
OCRApplication *OCRApplication::m_instance = nullptr;
OCRApplication::OCRApplication(QWidget *parent)
: OCRAbstractMoveResizeWidget(parent),
m_ui(new Ui::OCRApplication)
{
m_instance = this;
setAttribute(Qt::WA_TranslucentBackground, false);
m_count = 0;
m_applicationObject = new OCRApplicationObject(this);
m_ui->setupUi(this);
setMinimumSize(WINDOW_WIDTH_MIN, WINDOW_HEIGHT_MIN);
setMaximumSize(WINDOW_WIDTH_MIN, WINDOW_HEIGHT_MIN);
m_ui->iconLabel->setPixmap(QPixmap(":/image/lb_app_logo").scaled(m_ui->iconLabel->size()));
m_ui->background->