单进程运行,批次倒序,列表展示加速,其他优化
This commit is contained in:
parent
e45851d2b3
commit
9adfea89d3
@ -15,17 +15,17 @@
|
|||||||
#include "qpixmapcache.h"
|
#include "qpixmapcache.h"
|
||||||
#include "JSONDocUtil.h"
|
#include "JSONDocUtil.h"
|
||||||
#include <opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
|
#include "PreVerifyWidget.h"
|
||||||
|
|
||||||
|
|
||||||
DefectViewCustom::DefectViewCustom(QWidget* parent) {
|
DefectViewCustom::DefectViewCustom(QWidget* parent) {
|
||||||
QImageReader::setAllocationLimit(0);
|
|
||||||
setParent(parent);
|
setParent(parent);
|
||||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
|
setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
|
||||||
setResizeAnchor(QGraphicsView::AnchorUnderMouse);
|
setResizeAnchor(QGraphicsView::AnchorUnderMouse);
|
||||||
setRenderHint(QPainter::Antialiasing);
|
setRenderHint(QPainter::Antialiasing);
|
||||||
setDragMode(QGraphicsView::RubberBandDrag);
|
setDragMode(QGraphicsView::ScrollHandDrag);
|
||||||
setFrameShape(QFrame::NoFrame);
|
setFrameShape(QFrame::NoFrame);
|
||||||
|
|
||||||
m_scene.setBackgroundBrush(QBrush(QColor(Qt::white)));
|
m_scene.setBackgroundBrush(QBrush(QColor(Qt::white)));
|
||||||
|
@ -9,12 +9,11 @@
|
|||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "QPushButton"
|
#include "QPushButton"
|
||||||
#include "QLabel"
|
#include "QLabel"
|
||||||
#include "PreVerifyWidget.h"
|
|
||||||
#include <opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class PreVerifyWidget;
|
||||||
class DefectViewCustom : public QGraphicsView {
|
class DefectViewCustom : public QGraphicsView {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
LOG4QT_DECLARE_QCLASS_LOGGER
|
LOG4QT_DECLARE_QCLASS_LOGGER
|
||||||
|
Binary file not shown.
@ -1,15 +1,22 @@
|
|||||||
#include "MainWidget.h"
|
#include "MainWidget.h"
|
||||||
#include "QFont"
|
#include "QFont"
|
||||||
|
#include "qmessagebox.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MainWidget::MainWidget(QWidget* parent) {
|
MainWidget::MainWidget(QWidget* parent) {
|
||||||
setUi();
|
m_sharedMemory.setKey("PreVerify.exe");
|
||||||
setConnection();
|
if (m_sharedMemory.attach()) {
|
||||||
|
QMessageBox::warning(this, "警告", "PreVerify.exe正在运行,请勿重复启动!", QMessageBox::Ok);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_sharedMemory.create(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWidget::~MainWidget() {
|
|
||||||
delete this;
|
setUi();
|
||||||
|
setConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::setUi() {
|
void MainWidget::setUi() {
|
||||||
@ -54,7 +61,7 @@ void MainWidget::setUi() {
|
|||||||
void MainWidget::setConnection() {
|
void MainWidget::setConnection() {
|
||||||
QObject::connect(&m_preVerifyBtn, &QPushButton::pressed, this, &MainWidget::slot_preVerifyBtnPressed);
|
QObject::connect(&m_preVerifyBtn, &QPushButton::pressed, this, &MainWidget::slot_preVerifyBtnPressed);
|
||||||
QObject::connect(&m_paramSettingBtn, &QPushButton::pressed, this, &MainWidget::slot_paramSettingBtnPressed);
|
QObject::connect(&m_paramSettingBtn, &QPushButton::pressed, this, &MainWidget::slot_paramSettingBtnPressed);
|
||||||
QObject::connect(this, &MainWidget::sig_winStateChangeEvent, &m_preVerifyWgt, &PreVerifyWidget::slot_winStateChangeEvent);
|
//QObject::connect(this, &MainWidget::sig_winStateChangeEvent, &m_preVerifyWgt, &PreVerifyWidget::slot_winStateChangeEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::load() {
|
void MainWidget::load() {
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "PreVerifyWidget.h"
|
#include "PreVerifyWidget.h"
|
||||||
#include "qbuttongroup.h"
|
#include "qbuttongroup.h"
|
||||||
#include "QEvent"
|
#include "QEvent"
|
||||||
|
#include "qsharedmemory.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -16,7 +17,6 @@ class MainWidget : public QMainWindow {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
MainWidget(QWidget* parent = nullptr);
|
MainWidget(QWidget* parent = nullptr);
|
||||||
~MainWidget();
|
|
||||||
void setUi();
|
void setUi();
|
||||||
void setConnection();
|
void setConnection();
|
||||||
void load();
|
void load();
|
||||||
@ -36,6 +36,7 @@ private:
|
|||||||
PreVerifyWidget m_preVerifyWgt;
|
PreVerifyWidget m_preVerifyWgt;
|
||||||
QWidget m_paramSettingWgt;
|
QWidget m_paramSettingWgt;
|
||||||
QButtonGroup m_menuGrp;
|
QButtonGroup m_menuGrp;
|
||||||
|
QSharedMemory m_sharedMemory;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void changeEvent(QEvent* event) override;
|
void changeEvent(QEvent* event) override;
|
||||||
|
@ -166,7 +166,7 @@
|
|||||||
<QtMoc Include="JSONDocUtil.h" />
|
<QtMoc Include="JSONDocUtil.h" />
|
||||||
<QtMoc Include="JSONUtil.h" />
|
<QtMoc Include="JSONUtil.h" />
|
||||||
<QtMoc Include="DefectViewCustom.h" />
|
<QtMoc Include="DefectViewCustom.h" />
|
||||||
<ClInclude Include="PreVerifyWidget.h" />
|
<QtMoc Include="PreVerifyWidget.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtRcc Include="PreVerify.qrc" />
|
<QtRcc Include="PreVerify.qrc" />
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
<Filter Include="utils">
|
<Filter Include="utils">
|
||||||
<UniqueIdentifier>{7630d594-8c7c-4b8e-b52e-948aa2bbc118}</UniqueIdentifier>
|
<UniqueIdentifier>{7630d594-8c7c-4b8e-b52e-948aa2bbc118}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="customComponent">
|
||||||
|
<UniqueIdentifier>{3f54e682-abaa-4fc8-b627-2d43d4b38d7f}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="MainWidget.cpp">
|
<ClCompile Include="MainWidget.cpp">
|
||||||
@ -31,8 +34,12 @@
|
|||||||
<ClCompile Include="JSONUtil.cpp">
|
<ClCompile Include="JSONUtil.cpp">
|
||||||
<Filter>utils</Filter>
|
<Filter>utils</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="DefectViewCustom.cpp" />
|
<ClCompile Include="DefectViewCustom.cpp">
|
||||||
<ClCompile Include="ScrollAreaCustom.cpp" />
|
<Filter>customComponent</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="ScrollAreaCustom.cpp">
|
||||||
|
<Filter>customComponent</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtMoc Include="MainWidget.h">
|
<QtMoc Include="MainWidget.h">
|
||||||
@ -44,7 +51,10 @@
|
|||||||
<QtMoc Include="JSONUtil.h">
|
<QtMoc Include="JSONUtil.h">
|
||||||
<Filter>utils</Filter>
|
<Filter>utils</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="DefectViewCustom.h" />
|
<QtMoc Include="PreVerifyWidget.h" />
|
||||||
|
<QtMoc Include="DefectViewCustom.h">
|
||||||
|
<Filter>customComponent</Filter>
|
||||||
|
</QtMoc>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="PreVerify.yml">
|
<None Include="PreVerify.yml">
|
||||||
@ -54,11 +64,12 @@
|
|||||||
<Filter>main</Filter>
|
<Filter>main</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="PreVerifyWidget.h" />
|
|
||||||
<ClInclude Include="ScrollAreaCustom.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtRcc Include="PreVerify.qrc" />
|
<QtRcc Include="PreVerify.qrc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="ScrollAreaCustom.h">
|
||||||
|
<Filter>customComponent</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -16,10 +16,13 @@
|
|||||||
#include "qpixmapcache.h"
|
#include "qpixmapcache.h"
|
||||||
#include "QSpacerItem"
|
#include "QSpacerItem"
|
||||||
#include "qmessagebox.h"
|
#include "qmessagebox.h"
|
||||||
#include "resource.h"
|
#include "QtConcurrent/qtconcurrentrun.h"
|
||||||
|
#include "QFutureWatcher"
|
||||||
|
#include "DefectViewCustom.h"
|
||||||
|
|
||||||
|
|
||||||
PreVerifyWidget::PreVerifyWidget(QWidget* parent) {
|
PreVerifyWidget::PreVerifyWidget(QWidget* parent) {
|
||||||
|
QImageReader::setAllocationLimit(0);
|
||||||
QPixmapCache::setCacheLimit(8 * 1024 * 1024);
|
QPixmapCache::setCacheLimit(8 * 1024 * 1024);
|
||||||
setUi();
|
setUi();
|
||||||
setConnection();
|
setConnection();
|
||||||
@ -29,10 +32,6 @@ PreVerifyWidget::PreVerifyWidget(QWidget* parent) {
|
|||||||
loadDate();
|
loadDate();
|
||||||
}
|
}
|
||||||
|
|
||||||
PreVerifyWidget::~PreVerifyWidget() {
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PreVerifyWidget::setUi() {
|
void PreVerifyWidget::setUi() {
|
||||||
setLayout(&m_lt);
|
setLayout(&m_lt);
|
||||||
m_lt.addLayout(&m_leftLt, 3);
|
m_lt.addLayout(&m_leftLt, 3);
|
||||||
@ -149,7 +148,10 @@ void PreVerifyWidget::setUi() {
|
|||||||
m_treeWgt.setIndentation(5);
|
m_treeWgt.setIndentation(5);
|
||||||
m_treeWgt.setColumnCount(treeHeaders.size());
|
m_treeWgt.setColumnCount(treeHeaders.size());
|
||||||
m_treeWgt.setHeaderLabels(treeHeaders);
|
m_treeWgt.setHeaderLabels(treeHeaders);
|
||||||
m_treeWgt.header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
m_treeWgt.setColumnWidth(0, 200);
|
||||||
|
m_treeWgt.setColumnWidth(1, 45);
|
||||||
|
m_treeWgt.setColumnWidth(2, 30);
|
||||||
|
m_treeWgt.setColumnWidth(3, 45);
|
||||||
m_treeWgt.setSelectionMode(QAbstractItemView::SingleSelection);
|
m_treeWgt.setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,12 +220,12 @@ void PreVerifyWidget::setConnection() {
|
|||||||
QObject::connect(&m_lastDefectBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_lastDefectBtnPressed);
|
QObject::connect(&m_lastDefectBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_lastDefectBtnPressed);
|
||||||
QObject::connect(&m_nextBoardBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_nextBoardBtnPressed);
|
QObject::connect(&m_nextBoardBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_nextBoardBtnPressed);
|
||||||
QObject::connect(&m_nextDefectBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_nextDefectBtnPressed);
|
QObject::connect(&m_nextDefectBtn, &QPushButton::pressed, this, &PreVerifyWidget::slot_nextDefectBtnPressed);
|
||||||
|
QObject::connect(this, &PreVerifyWidget::sig_grdLtUpdate, this, &PreVerifyWidget::slot_grdLtUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreVerifyWidget::loadDate() {
|
void PreVerifyWidget::loadDate() {
|
||||||
m_dateCmb.addItem("");
|
m_dateCmb.addItem("");
|
||||||
QString path = "D:/PCBDataset/Defect/fengming/AOI_DEFECT";
|
QString path = "D:/PCBDataset/Defect/fengming/AOI_DEFECT";
|
||||||
QJsonObject yearJson;
|
|
||||||
|
|
||||||
QDir rootDir(path);
|
QDir rootDir(path);
|
||||||
QStringList dateList = rootDir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs, QDir::Time);
|
QStringList dateList = rootDir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs, QDir::Time);
|
||||||
@ -281,6 +283,7 @@ void PreVerifyWidget::loadTreeWgt() {
|
|||||||
//创建文件夹Json对象
|
//创建文件夹Json对象
|
||||||
toJson(yearJson, path);
|
toJson(yearJson, path);
|
||||||
|
|
||||||
|
|
||||||
//创建文件夹树
|
//创建文件夹树
|
||||||
for (QString yearKey : yearJson.keys()) {
|
for (QString yearKey : yearJson.keys()) {
|
||||||
QTreeWidgetItem* yearItem = new QTreeWidgetItem(&m_treeWgt);
|
QTreeWidgetItem* yearItem = new QTreeWidgetItem(&m_treeWgt);
|
||||||
@ -417,7 +420,35 @@ void PreVerifyWidget::slot_treeWgtCurrentItemChanged(QTreeWidgetItem* current, Q
|
|||||||
}
|
}
|
||||||
|
|
||||||
QJsonArray arr = m_vrsJson.value("Defectx").toArray();
|
QJsonArray arr = m_vrsJson.value("Defectx").toArray();
|
||||||
|
|
||||||
|
QString samplePath = "D:/PCBDataset/Reference/" + jobLayer + "/Learn/panel_image.png";
|
||||||
|
if (!QPixmapCache::find(jobLayer, &m_samplePxmp)) {
|
||||||
|
m_samplePxmp.load(samplePath, nullptr, Qt::NoFormatConversion);
|
||||||
|
QPixmapCache::insert(jobLayer, m_samplePxmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<DefectViewCustom*> defectItems;
|
||||||
|
collect(count, arr, jobLayer, defectItems);
|
||||||
|
int sum = 0;
|
||||||
|
for (DefectViewCustom* item : defectItems) {
|
||||||
|
m_grdLt.addWidget(item, sum / m_colCount, sum % m_colCount);
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_grdScr.verticalScrollBar()->setSingleStep(m_grdScr.height());
|
||||||
|
m_grdScr.verticalScrollBar()->setSliderPosition(0);
|
||||||
|
this->setFocus();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PreVerifyWidget::collect(int count, QJsonArray& arr,QString& jobLayer, QList<DefectViewCustom*>& defectItems) {
|
||||||
|
QPixmap px;
|
||||||
|
QPixmapCache::find(jobLayer, &px);
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
|
int defectId = i + 1;
|
||||||
|
QString scanImgPath = m_dirPath + m_ab + QString::number(defectId) + ".jpg";
|
||||||
|
if (!QFile(scanImgPath).exists()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
DefectViewCustom* defectItem = new DefectViewCustom();
|
DefectViewCustom* defectItem = new DefectViewCustom();
|
||||||
defectItem->m_preVerifyWgt = this;
|
defectItem->m_preVerifyWgt = this;
|
||||||
defectItem->setParent(this);
|
defectItem->setParent(this);
|
||||||
@ -426,37 +457,30 @@ void PreVerifyWidget::slot_treeWgtCurrentItemChanged(QTreeWidgetItem* current, Q
|
|||||||
if (obj.contains("AIresult") && obj.value("AIresult") == 0) {
|
if (obj.contains("AIresult") && obj.value("AIresult") == 0) {
|
||||||
isValid = false;
|
isValid = false;
|
||||||
}
|
}
|
||||||
int defectId = i + 1;
|
int defectType = obj.value("Code").toInt();
|
||||||
int defectType = obj.value("Code").toDouble();
|
|
||||||
double x = obj.value("X").toDouble();
|
double x = obj.value("X").toDouble();
|
||||||
double y = obj.value("Y").toDouble();
|
double y = obj.value("Y").toDouble();
|
||||||
|
|
||||||
QString samplePath = "D:/PCBDataset/Reference/" + jobLayer + "\\Learn\\panel_image.png";
|
|
||||||
if (!QPixmapCache::find(jobLayer, &m_samplePxmp)) {
|
|
||||||
m_samplePxmp.load(samplePath, nullptr, Qt::NoFormatConversion);
|
|
||||||
QPixmapCache::insert(jobLayer, m_samplePxmp);
|
|
||||||
}
|
|
||||||
bool containSample = m_showCamChk.isChecked();
|
bool containSample = m_showCamChk.isChecked();
|
||||||
defectItem->load(m_dirPath + m_ab + QString::number(defectId) + ".jpg", defectId, isValid, x, y, jobLayer, m_samplePxmp, defectType, m_rowHeight, containSample);
|
defectItem->load(scanImgPath, defectId, isValid, x, y, jobLayer, px, defectType, m_rowHeight, containSample);
|
||||||
if (m_colCount == 2) {
|
switch (m_colCount) {
|
||||||
|
case 2:
|
||||||
defectItem->scale(1.8, 1.8);
|
defectItem->scale(1.8, 1.8);
|
||||||
}
|
break;
|
||||||
else if (m_colCount == 3) {
|
case 3:
|
||||||
defectItem->scale(1.6, 1.6);
|
defectItem->scale(1.6, 1.6);
|
||||||
}
|
break;
|
||||||
else if (m_colCount == 4) {
|
case 4:
|
||||||
defectItem->scale(0.9, 0.9);
|
defectItem->scale(0.9, 0.9);
|
||||||
}
|
break;
|
||||||
else if (m_colCount == 5) {
|
case 5:
|
||||||
defectItem->scale(0.9, 0.9);
|
defectItem->scale(0.9, 0.9);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
m_grdLt.addWidget(defectItem, i / m_colCount, i % m_colCount);
|
defectItems.push_back(defectItem);
|
||||||
|
|
||||||
m_grdScr.verticalScrollBar()->setSingleStep(m_grdScr.height());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_grdScr.verticalScrollBar()->setSliderPosition(0);
|
|
||||||
this->setFocus();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//1.添加 -1.删除
|
//1.添加 -1.删除
|
||||||
@ -740,3 +764,7 @@ void PreVerifyWidget::keyPressEvent(QKeyEvent* event) {
|
|||||||
void PreVerifyWidget::slot_winStateChangeEvent() {
|
void PreVerifyWidget::slot_winStateChangeEvent() {
|
||||||
slot_treeWgtCurrentItemChanged(m_treeWgt.currentItem(), nullptr);
|
slot_treeWgtCurrentItemChanged(m_treeWgt.currentItem(), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PreVerifyWidget::slot_grdLtUpdate() {
|
||||||
|
update();
|
||||||
|
}
|
@ -16,16 +16,19 @@
|
|||||||
#include "qspinbox.h"
|
#include "qspinbox.h"
|
||||||
#include "ScrollAreaCustom.h"
|
#include "ScrollAreaCustom.h"
|
||||||
#include "qmutex.h"
|
#include "qmutex.h"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
class DefectViewCustom;
|
||||||
class PreVerifyWidget : public QWidget {
|
class PreVerifyWidget : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
LOG4QT_DECLARE_QCLASS_LOGGER
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PreVerifyWidget(QWidget* parent = nullptr);
|
PreVerifyWidget(QWidget* parent = nullptr);
|
||||||
~PreVerifyWidget();
|
|
||||||
void setUi();
|
void setUi();
|
||||||
void setConnection();
|
void setConnection();
|
||||||
void load();
|
void load();
|
||||||
|
void collect(int count, QJsonArray& arr, QString& jobLayer, QList<DefectViewCustom*>& defectItems);
|
||||||
void updateOne(QString defectId, int action);
|
void updateOne(QString defectId, int action);
|
||||||
QString defectId2Desc(int defectId);
|
QString defectId2Desc(int defectId);
|
||||||
void filter();
|
void filter();
|
||||||
@ -94,7 +97,8 @@ private:
|
|||||||
int m_rowHeight = -1;
|
int m_rowHeight = -1;
|
||||||
QList<QTreeWidgetItem*> m_boardItemList;
|
QList<QTreeWidgetItem*> m_boardItemList;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void sig_grdLtUpdate();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slot_treeWgtCurrentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
|
void slot_treeWgtCurrentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
|
||||||
@ -103,6 +107,7 @@ public slots:
|
|||||||
void slot_nextBoardBtnPressed();
|
void slot_nextBoardBtnPressed();
|
||||||
void slot_nextDefectBtnPressed();
|
void slot_nextDefectBtnPressed();
|
||||||
void slot_winStateChangeEvent();
|
void slot_winStateChangeEvent();
|
||||||
|
void slot_grdLtUpdate();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#include "QGuiApplication"
|
#include "QGuiApplication"
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <dbghelp.h>
|
#include <dbghelp.h>
|
||||||
#include "XDongleVerifierWorker.h"
|
|
||||||
#include "QDir"
|
#include "QDir"
|
||||||
#include "QDateTime"
|
#include "QDateTime"
|
||||||
|
#include "qthreadpool.h"
|
||||||
|
|
||||||
|
|
||||||
#pragma comment(lib, "Dbghelp.lib")
|
#pragma comment(lib, "Dbghelp.lib")
|
||||||
@ -20,6 +20,8 @@ int main(int argc, char* argv[]) {
|
|||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
SetUnhandledExceptionFilter(exceptionCallback);
|
SetUnhandledExceptionFilter(exceptionCallback);
|
||||||
|
|
||||||
|
QThreadPool::globalInstance()->setMaxThreadCount(15);
|
||||||
|
|
||||||
|
|
||||||
MainWidget* mainWidget = new MainWidget();
|
MainWidget* mainWidget = new MainWidget();
|
||||||
mainWidget->load();
|
mainWidget->load();
|
||||||
|
Loading…
Reference in New Issue
Block a user