增加英文翻译文件

newClassify
bobpan 5 years ago
parent abb11bf347
commit a7b131b059

@ -0,0 +1,31 @@
#ifndef _H_RESULT2UI_H_
#define _H_RESULT2UI_H_
#include "qpixmap.h"
#include "qimage.h"
class Result2Ui
{
public:
Result2Ui() {
m_strModel = "";
m_dScore = 0;
m_dDiameter = 0;
m_dThickness = 0;
m_dRunTime = 0;
m_dMinDis = 1000;
m_channel = 0;
};
double m_dDiameter;
double m_dThickness;
double m_dRunTime;
QPixmap m_pixResult;
QPixmap m_pixSrc;
QString m_strModel;
double m_dScore;
double m_dMinDis;
int m_channel;
};
#endif

@ -0,0 +1,333 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>QLoginDlg</name>
<message>
<location filename="../../src/userCtrl/QLoginDlg.ui" line="17"/>
<source></source>
<translatorcomment>User LoginIn</translatorcomment>
<translation>User LoginIn</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.ui" line="31"/>
<source></source>
<translatorcomment>LoginIn</translatorcomment>
<translation>LoginIn</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.ui" line="44"/>
<source></source>
<translatorcomment>Cancel</translatorcomment>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.ui" line="53"/>
<source></source>
<translatorcomment>UserName:</translatorcomment>
<translation>UserName:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.ui" line="60"/>
<source> </source>
<translatorcomment>Password:</translatorcomment>
<translation>Password:</translation>
</message>
</context>
<context>
<name>QLoginModify</name>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="14"/>
<source>QLoginModify</source>
<translatorcomment>QLoginModify</translatorcomment>
<translation>QLoginModify</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="20"/>
<source></source>
<translatorcomment>Old Passwd</translatorcomment>
<translation>Old Passwd</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="27"/>
<source></source>
<translatorcomment>New Passwd</translatorcomment>
<translation>New Passwd</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="34"/>
<source></source>
<translatorcomment>Passwd Sure</translatorcomment>
<translation>Passwd Sure</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="41"/>
<source>UserName:</source>
<translatorcomment>UserName:</translatorcomment>
<translation>UserName:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="48"/>
<source></source>
<translatorcomment>Cancel</translatorcomment>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginModify.ui" line="85"/>
<source></source>
<translatorcomment>Modify</translatorcomment>
<translation>Modify</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="74"/>
<source>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</source>
<translatorcomment>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;username don&apos;t empty&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translatorcomment>
<translation>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;username don&apos;t empty&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="75"/>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="81"/>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="97"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="53"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="58"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="89"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="94"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="99"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="104"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="107"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="127"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="132"/>
<source></source>
<translatorcomment>Warning</translatorcomment>
<translation>Warning</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="80"/>
<source>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</source>
<translatorcomment>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;password don&apos;t empty&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translatorcomment>
<translation>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;password don&apos;t empty&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="88"/>
<source>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#00ff00;&gt;&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</source>
<translatorcomment>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#00ff00;&gt;Success&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translatorcomment>
<translation>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#00ff00;&gt;Success&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translation>
</message>
<message>
<location filename="../../src/userCtrl/QLoginDlg.cpp" line="96"/>
<source>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</source>
<translatorcomment>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;Password Error&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translatorcomment>
<translation>&lt;html&gt;&lt;head / &gt;&lt;body&gt;&lt;p&gt;&lt;span style = color:#ff0000;&gt;Password Error&lt; / span&gt;&lt; / p&gt;&lt; / body&gt;&lt; / html&gt;</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="22"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="161"/>
<source></source>
<translatorcomment>UserName</translatorcomment>
<translation>UserName</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="22"/>
<source></source>
<translatorcomment>Level</translatorcomment>
<translation>Level</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="44"/>
<source></source>
<translatorcomment>LoginOut</translatorcomment>
<translation>LoginOut</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="53"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="89"/>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="127"/>
<source></source>
<translatorcomment>Please connect Manager</translatorcomment>
<translation>Please connect Manager</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="58"/>
<source></source>
<translatorcomment>Don&apos;t have power to add user</translatorcomment>
<translation>Don&apos;t have power to add user</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="62"/>
<source></source>
<translatorcomment>add user</translatorcomment>
<translation>add user</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="74"/>
<source>%1 </source>
<translatorcomment>%1 add finish</translatorcomment>
<translation>%1 add finish</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="94"/>
<source></source>
<translatorcomment>please select User!</translatorcomment>
<translation>please select User!</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="99"/>
<source>root</source>
<translatorcomment>Please connect Manager</translatorcomment>
<translation>Please connect Manager</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="104"/>
<source></source>
<translatorcomment>Please connect Manager</translatorcomment>
<translation>Please connect Manager</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="107"/>
<source>: %1 ?</source>
<translatorcomment>Delete User: %1 ?</translatorcomment>
<translation>Delete User: %1 ?</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="111"/>
<source>%1 </source>
<translatorcomment>%1 deleted</translatorcomment>
<translation>%1 deleted</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="132"/>
<source></source>
<translatorcomment>Please connect Manager</translatorcomment>
<translation>Please connect Manager</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="136"/>
<source></source>
<translatorcomment>Modify UserInfo</translatorcomment>
<translation>Modify UserInfo</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="148"/>
<source>%1 </source>
<translatorcomment>%1 Modify finish</translatorcomment>
<translation>%1 Modify finish</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="161"/>
<source></source>
<translatorcomment>Post</translatorcomment>
<translation>Post</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.cpp" line="161"/>
<source></source>
<translatorcomment>Level</translatorcomment>
<translation>Level</translation>
</message>
</context>
<context>
<name>QUserAddNew</name>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="14"/>
<source>QUserAddNew</source>
<translatorcomment>QUserAddNew</translatorcomment>
<translation>QUserAddNew</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="39"/>
<source></source>
<translatorcomment>OK</translatorcomment>
<translation>OK</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="52"/>
<source></source>
<translatorcomment>Cancel</translatorcomment>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="69"/>
<source></source>
<translatorcomment>Set Default</translatorcomment>
<translation>Set Default</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="76"/>
<source> 123456</source>
<translatorcomment>default pwd123456</translatorcomment>
<translation> default pwd123456</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="99"/>
<source></source>
<translatorcomment>passwd:</translatorcomment>
<translation>Passwd:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="112"/>
<source></source>
<translatorcomment>passwd:</translatorcomment>
<translation>Passwd:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="135"/>
<source></source>
<translatorcomment>UserName:</translatorcomment>
<translation>UserName:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserAddNew.ui" line="148"/>
<source></source>
<translatorcomment>Level:</translatorcomment>
<translation>Level:</translation>
</message>
</context>
<context>
<name>QUserManagerDlg</name>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="17"/>
<source></source>
<translatorcomment>User Manage</translatorcomment>
<translation>User Manage</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="28"/>
<source></source>
<translatorcomment>Current User:</translatorcomment>
<translation>Current User:</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="41"/>
<source>UserName</source>
<translatorcomment>UserName</translatorcomment>
<translation>UserName</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="82"/>
<source></source>
<translatorcomment>Modify</translatorcomment>
<translation>Modify</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="95"/>
<source></source>
<translatorcomment>Delete</translatorcomment>
<translation>Delete</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="111"/>
<source></source>
<translatorcomment>Add</translatorcomment>
<translation>Add</translation>
</message>
<message>
<location filename="../../src/userCtrl/QUserManagerDlg.ui" line="118"/>
<source>TextLabel</source>
<translatorcomment>TextLabel</translatorcomment>
<translation>TextLabel</translation>
</message>
</context>
</TS>

@ -1,4 +1,4 @@
#include "QCamSettingDlg.h" #include "QCamSettingDlg.h"
QCamSettingDlg::QCamSettingDlg(QWidget *parent) QCamSettingDlg::QCamSettingDlg(QWidget *parent)
: QWidget(parent) : QWidget(parent)

@ -1,6 +1,6 @@
#include "QChannelMgrDlg.h" #include "QChannelMgrDlg.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
/*通道管理*/ /*通道管理*/
QChannelMgrDlg::QChannelMgrDlg(QWidget *parent) QChannelMgrDlg::QChannelMgrDlg(QWidget *parent)
: QWidget(parent) : QWidget(parent)
{ {

@ -1,8 +1,8 @@
#include "QDebugDlg.h" #include "QDebugDlg.h"
#include "IWheelModel.h" #include "IWheelModel.h"
#include "QFile" #include "QFile"
#include "QTextStream" #include "QTextStream"
/*µ÷ÊÔ´°¿Ú*/ /*调试窗口*/
QDebugDlg::QDebugDlg(QWidget *parent) QDebugDlg::QDebugDlg(QWidget *parent)
: QWidget(parent) : QWidget(parent)
{ {
@ -94,12 +94,12 @@ Q_SLOT void QDebugDlg::onButtonClicked()
emit sgTriggerCam(); emit sgTriggerCam();
} }
else if ("Dlp_StartDetect_button" == strObj) { else if ("Dlp_StartDetect_button" == strObj) {
if (ui.Dlp_StartDetect_button->text() == tr("¿ªÊ¼Ä£Äâ¼ì²â")) { if (ui.Dlp_StartDetect_button->text() == tr("开始模拟检测")) {
ui.Dlp_StartDetect_button->setText(tr("Í£Ö¹")); ui.Dlp_StartDetect_button->setText(tr("停止"));
m_simuliter.start(2000); m_simuliter.start(2000);
} }
else { else {
ui.Dlp_StartDetect_button->setText(tr("¿ªÊ¼Ä£Äâ¼ì²â")); ui.Dlp_StartDetect_button->setText(tr("开始模拟检测"));
m_simuliter.stop(); m_simuliter.stop();
} }
} }

@ -1,4 +1,4 @@
#include "QModelMgrDlg.h" #include "QModelMgrDlg.h"
#include "ProgressView.h" #include "ProgressView.h"
#include <QFileInfo> #include <QFileInfo>
#include <QDir> #include <QDir>
@ -12,7 +12,7 @@
#include "QSettings.h" #include "QSettings.h"
#include "ICompareModel.h" #include "ICompareModel.h"
#define WS_PICSIZE 129 //!>缩放大小 #define WS_PICSIZE 129 //!>缩放大小
#define WS_PICSIZELIST_ITEM 100 #define WS_PICSIZELIST_ITEM 100
#define MODEL_UI_ICON_NONE ":/image/none.jpg" #define MODEL_UI_ICON_NONE ":/image/none.jpg"
#define MODEL_UI_ICON_LEAPER ":/image/leaper" #define MODEL_UI_ICON_LEAPER ":/image/leaper"
@ -29,7 +29,7 @@ enum EM_TYPE_PROCESSMODEL
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
using namespace std; using namespace std;
/*模板管理*/ /*模板管理*/
QTime m_ticktimer; QTime m_ticktimer;
QModelMgrDlg::QModelMgrDlg(IWheelCtrl *ptr, QWidget *parent) QModelMgrDlg::QModelMgrDlg(IWheelCtrl *ptr, QWidget *parent)
: QWidget(parent),m_pCtrl(ptr) : QWidget(parent),m_pCtrl(ptr)
@ -128,12 +128,12 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
{ {
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) { if (strModel.isEmpty()) {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0);
return; return;
} }
if (!m_pModelMgr->getAllModelName().contains(strModel)) if (!m_pModelMgr->getAllModelName().contains(strModel))
{ {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0);
return; return;
} }
QStringList lstFiles = FileOper::selectFiles(QString("%1 Add Picture").arg(strModel), "Picture(*.bmp *.jpg *.png)", m_strAddPicPath);// m_pCtrl->appRoot() + "//Data//"); QStringList lstFiles = FileOper::selectFiles(QString("%1 Add Picture").arg(strModel), "Picture(*.bmp *.jpg *.png)", m_strAddPicPath);// m_pCtrl->appRoot() + "//Data//");
@ -144,8 +144,8 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
int size = lstFiles.size(); int size = lstFiles.size();
int nSuc = 0; int nSuc = 0;
int oldImgsCnt = m_pModelMgr->getModel(strModel)->getTempImage()->getImgCount(); int oldImgsCnt = m_pModelMgr->getModel(strModel)->getTempImage()->getImgCount();
ProgressView progress(tr("加载图像"), ProgressView progress(tr("加载图像"),
tr("图像加载中,请稍后....."), size, MODEL_UI_ICON_LEAPER); tr("图像加载中,请稍后....."), size, MODEL_UI_ICON_LEAPER);
for (int nIndex = 0; nIndex < size; ++nIndex) { for (int nIndex = 0; nIndex < size; ++nIndex) {
QString filepath = lstFiles.value(nIndex); QString filepath = lstFiles.value(nIndex);
if (appImage2Widget(filepath, strModel)) { if (appImage2Widget(filepath, strModel)) {
@ -154,7 +154,7 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
qApp->processEvents(); qApp->processEvents();
} }
else { else {
emit(sgShowMsg(tr("添加失败,不能添加带检测背景的图片作为模板!!!"))); emit(sgShowMsg(tr("添加失败,不能添加带检测背景的图片作为模板!!!")));
break; break;
} }
} }
@ -169,7 +169,7 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
ui.ModelMgr_model_Repet_spinBox->setValue(IRepet); ui.ModelMgr_model_Repet_spinBox->setValue(IRepet);
} }
} }
progress.setLabel(tr("加载完成")); progress.setLabel(tr("加载完成"));
qApp->processEvents(); qApp->processEvents();
progress.finish(); progress.finish();
} }
@ -178,12 +178,12 @@ Q_SLOT void QModelMgrDlg::onModifyModel()
{ {
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) { if (strModel.isEmpty()) {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return; return;
} }
if (!m_pModelMgr->getAllModelName().contains(strModel)) if (!m_pModelMgr->getAllModelName().contains(strModel))
{ {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return; return;
} }
IWheelModel*pModel = m_pModelMgr->getModel(strModel); IWheelModel*pModel = m_pModelMgr->getModel(strModel);
@ -207,46 +207,46 @@ Q_SLOT void QModelMgrDlg::onModifyModel()
pModel->getImageComModel()->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/); pModel->getImageComModel()->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/);
m_pModelMgr->modModel(strModel); m_pModelMgr->modModel(strModel);
m_pModelMgr->saveModel(strModel); m_pModelMgr->saveModel(strModel);
QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2 %3").arg(tr("修改了模板")).arg(strModel).arg(tr("的参数")); QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2 %3").arg(tr("修改了模板")).arg(strModel).arg(tr("的参数"));
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
//m_modLib = true; //m_modLib = true;
emit sgShowMsg(tr("修改成功!")); emit sgShowMsg(tr("修改成功!"));
} }
Q_SLOT void QModelMgrDlg::onDelModel() Q_SLOT void QModelMgrDlg::onDelModel()
{ {
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) { if (strModel.isEmpty()) {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0);
return; return;
} }
if (!m_pModelMgr->getAllModelName().contains(strModel)) if (!m_pModelMgr->getAllModelName().contains(strModel))
{ {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0);
return; return;
} }
QString str = m_pCtrl->getUserName() + ":" + tr("按下了删除模板按钮"); QString str = m_pCtrl->getUserName() + ":" + tr("按下了删除模板按钮");
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
if (onMessageBox(QMessageBox::Information, tr("提示"), QString("%1 %2 %3").arg(tr("是否删除型号")).arg(strModel).arg(tr("产品模板")), 1) == false) if (onMessageBox(QMessageBox::Information, tr("提示"), QString("%1 %2 %3").arg(tr("是否删除型号")).arg(strModel).arg(tr("产品模板")), 1) == false)
return; return;
m_pModelLists->removeModel(strModel); m_pModelLists->removeModel(strModel);
m_pModelMgr->delModel(strModel); m_pModelMgr->delModel(strModel);
m_pModelLists->update2AllModels("NG"); m_pModelLists->update2AllModels("NG");
emit(m_pCtrl->sgModelChanged()); emit(m_pCtrl->sgModelChanged());
emit(sgGenalData(QVariant("removeModel"), QVariant(strModel))); emit(sgGenalData(QVariant("removeModel"), QVariant(strModel)));
str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("删除了模板")).arg(strModel); str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("删除了模板")).arg(strModel);
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys(); QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys();
strFilter.removeAll("NG"); strFilter.removeAll("NG");
m_pModelLists->setModelList(strFilter); m_pModelLists->setModelList(strFilter);
QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("个型号")); QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str); ui.ModelMgr_label_Model_number->setText(m_str);
onClearShow(); onClearShow();
} }
Q_SLOT void QModelMgrDlg::onAddModel() Q_SLOT void QModelMgrDlg::onAddModel()
{ {
QString str = m_pCtrl->getUserName() + ":" + tr("按下了添加模板按钮"); QString str = m_pCtrl->getUserName() + ":" + tr("按下了添加模板按钮");
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
QAddModel m_AddModel(this); QAddModel m_AddModel(this);
@ -256,7 +256,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
m_AddModel.setAttribute(Qt::WA_ShowModal, true); m_AddModel.setAttribute(Qt::WA_ShowModal, true);
m_AddModel.SetClearData(); m_AddModel.SetClearData();
m_AddModel.setWindowIcon(QIcon(MODEL_UI_ICON_LEAPER)); m_AddModel.setWindowIcon(QIcon(MODEL_UI_ICON_LEAPER));
m_AddModel.setWindowTitle(tr("产品信息设置")); m_AddModel.setWindowTitle(tr("产品信息设置"));
m_AddModel.setFocus(); m_AddModel.setFocus();
if (m_AddModel.exec() == QDialog::Accepted) { if (m_AddModel.exec() == QDialog::Accepted) {
QMap<QString, QVariant> m_map = m_AddModel.getData(); QMap<QString, QVariant> m_map = m_AddModel.getData();
@ -275,7 +275,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
m_pModelMgr->saveModel(pModel->getModelID()); m_pModelMgr->saveModel(pModel->getModelID());
m_pModelLists->update2AllModels("NG"); m_pModelLists->update2AllModels("NG");
emit m_pCtrl->sgModelChanged(); emit m_pCtrl->sgModelChanged();
QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("添加了一个新的模型")).arg(pModel->getModelID()); QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("添加了一个新的模型")).arg(pModel->getModelID());
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
onShowModelInfo(pModel->getModelID()); onShowModelInfo(pModel->getModelID());
onShowModelPic(pModel->getModelID()); onShowModelPic(pModel->getModelID());
@ -283,7 +283,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys(); QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys();
strFilter.removeAll("NG"); strFilter.removeAll("NG");
m_pModelLists->setModelList(strFilter); m_pModelLists->setModelList(strFilter);
QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("个型号")); QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str); ui.ModelMgr_label_Model_number->setText(m_str);
} }
} }
@ -294,7 +294,7 @@ Q_SLOT void QModelMgrDlg::onTrainModel()
if (!m_trainOneTsk->isRunning()) { if (!m_trainOneTsk->isRunning()) {
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) { if (strModel.isEmpty()) {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要训练的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要训练的型号!"), 0);
return; return;
} }
m_strTrainModel = strModel; m_strTrainModel = strModel;
@ -305,7 +305,7 @@ Q_SLOT void QModelMgrDlg::onTrainModel()
else { else {
m_trainOneTsk->stop(); m_trainOneTsk->stop();
m_trainOneTsk->quit(); m_trainOneTsk->quit();
emit sgShowMsg(tr("训练模板线程未退出,请稍等")); emit sgShowMsg(tr("训练模板线程未退出,请稍等"));
} }
} }
} }
@ -314,7 +314,7 @@ Q_SLOT void QModelMgrDlg::onTrainAllModels()
{ {
if (m_trainAllTsk) { if (m_trainAllTsk) {
if (!m_trainAllTsk->isRunning()) { if (!m_trainAllTsk->isRunning()) {
if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("将对所有型号模板进行重新训练,期间系统的检测功能将不能正常运行直到模板训练完成,全部重新训练模板将需要很长时间,期间将不能进行其他工作,是否继续执行?"), 1) == false) if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("将对所有型号模板进行重新训练,期间系统的检测功能将不能正常运行直到模板训练完成,全部重新训练模板将需要很长时间,期间将不能进行其他工作,是否继续执行?"), 1) == false)
return; return;
m_ticktimer.start(); m_ticktimer.start();
m_trainAllTsk->InitStopFlag(); m_trainAllTsk->InitStopFlag();
@ -323,7 +323,7 @@ Q_SLOT void QModelMgrDlg::onTrainAllModels()
else { else {
m_trainAllTsk->stop(); m_trainAllTsk->stop();
m_trainAllTsk->quit(); m_trainAllTsk->quit();
emit sgShowMsg(tr("训练模板线程未退出,请稍等")); emit sgShowMsg(tr("训练模板线程未退出,请稍等"));
} }
} }
} }
@ -339,15 +339,15 @@ Q_SLOT void QModelMgrDlg::onItemDoubleClicked(QListWidgetItem * item)
// return; // return;
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
QString itemText = item->text(); QString itemText = item->text();
QString strWarning = tr("确定删除该图像?"); QString strWarning = tr("确定删除该图像?");
if (onMessageBox(QMessageBox::Warning, tr("模板图片删除"), strWarning, 1) == false) if (onMessageBox(QMessageBox::Warning, tr("模板图片删除"), strWarning, 1) == false)
return; return;
TempImage *pImg = m_pModelMgr->getTmpImage(strModel); TempImage *pImg = m_pModelMgr->getTmpImage(strModel);
if (pImg) { if (pImg) {
pImg->remove(itemText); pImg->remove(itemText);
} }
delete item; delete item;
QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("个图像")); QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("个图像"));
ui.label_imgNum->setText(m_str); ui.label_imgNum->setText(m_str);
} }
// else if ("ModelMgr_listWidget_tab2" == objName) // else if ("ModelMgr_listWidget_tab2" == objName)
@ -386,7 +386,7 @@ Q_SLOT void QModelMgrDlg::onPrograssShow(QString title, QString strValue, int si
} }
break; break;
case emPross_enable: case emPross_enable:
onMessageBox(QMessageBox::Information, tr("提示"), strValue, 0); onMessageBox(QMessageBox::Information, tr("提示"), strValue, 0);
break; break;
case emPross_Disable: case emPross_Disable:
break; break;
@ -400,13 +400,13 @@ Q_SLOT void QModelMgrDlg::setValue(int value)
Q_SLOT void QModelMgrDlg::onDelAllModels() Q_SLOT void QModelMgrDlg::onDelAllModels()
{ {
if (onMessageBox(QMessageBox::Warning, tr("警告"), tr("即将删除模板库里的所有模板,是否继续?"), 1) == false) if (onMessageBox(QMessageBox::Warning, tr("警告"), tr("即将删除模板库里的所有模板,是否继续?"), 1) == false)
return; return;
if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("再次确认,是否全部删除?"), 1) == false) if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("再次确认,是否全部删除?"), 1) == false)
return; return;
QStringList ModeStrList = m_pModelMgr->getAllModelName(); QStringList ModeStrList = m_pModelMgr->getAllModelName();
if (ModeStrList.size() <= 0) { if (ModeStrList.size() <= 0) {
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有模板!!!"), 0); onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有模板!!!"), 0);
return; return;
} }
for (int nIndex = 0; nIndex < ModeStrList.size(); nIndex++) { for (int nIndex = 0; nIndex < ModeStrList.size(); nIndex++) {
@ -420,7 +420,7 @@ Q_SLOT void QModelMgrDlg::onDelAllModels()
} }
} }
onClearShow(); onClearShow();
onMessageBox(QMessageBox::Warning, tr("提示"), tr("全部删除完成!!!"), 0); onMessageBox(QMessageBox::Warning, tr("提示"), tr("全部删除完成!!!"), 0);
} }
Q_SLOT void QModelMgrDlg::onChangeModelName() Q_SLOT void QModelMgrDlg::onChangeModelName()
@ -428,7 +428,7 @@ Q_SLOT void QModelMgrDlg::onChangeModelName()
QString strModel = m_pShowImgList->property("model").toString(); QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) if (strModel.isEmpty())
{ {
onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0); onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return; return;
} }
QModNamedlg dlg(this); QModNamedlg dlg(this);
@ -482,14 +482,14 @@ Q_SLOT void QModelMgrDlg::onTextChanged(const QString& str)
models.removeAll("NG"); models.removeAll("NG");
if (str.isEmpty() || str == "*") { if (str.isEmpty() || str == "*") {
m_pModelLists->setModelList(models); m_pModelLists->setModelList(models);
QString m_str = QString("%1 %2 %3").arg(tr("")).arg(models.size()).arg(tr("个型号")); QString m_str = QString("%1 %2 %3").arg(tr("")).arg(models.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str); ui.ModelMgr_label_Model_number->setText(m_str);
//m_FindModel = models; //m_FindModel = models;
} }
else { else {
QStringList strFilter = models.filter(str); QStringList strFilter = models.filter(str);
m_pModelLists->setModelList(strFilter); m_pModelLists->setModelList(strFilter);
QString m_str = QString("%1 %2 个型号").arg(tr("")).arg(strFilter.size()).arg(tr("个型号")); QString m_str = QString("%1 %2 个型号").arg(tr("")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str); ui.ModelMgr_label_Model_number->setText(m_str);
} }
} }
@ -528,22 +528,22 @@ Q_SLOT void QModelMgrDlg::onShowModelInfo(QString str)
updateWidget(str); updateWidget(str);
int IImgNum = m_pShowImgList->count(); int IImgNum = m_pShowImgList->count();
QString strShow = QString("%1 %2 %3").arg(tr("")).arg(IImgNum).arg(tr("个图像")); QString strShow = QString("%1 %2 %3").arg(tr("")).arg(IImgNum).arg(tr("个图像"));
if (IImgNum > 0 && IImgNum < nGlobalMinImgs) if (IImgNum > 0 && IImgNum < nGlobalMinImgs)
strShow += QString(",%1 %2 %3.").arg(tr("图像数量少于")).arg(nGlobalMinImgs).arg(tr("个,请及时补充训练样本")); strShow += QString(",%1 %2 %3.").arg(tr("图像数量少于")).arg(nGlobalMinImgs).arg(tr("个,请及时补充训练样本"));
ui.label_imgNum->setText(strShow); ui.label_imgNum->setText(strShow);
/* if (m_WarningMsg) /* if (m_WarningMsg)
{ {
int nTypeModel = m_pModelMgr->getModel(str)->getImageModel(); int nTypeModel = m_pModelMgr->getModel(str)->getImageModel();
if (nTypeModel == 0) if (nTypeModel == 0)
m_WarningMsg->setText(tr("该模板训练成功,可以正常使用")); m_WarningMsg->setText(tr("该模板训练成功,可以正常使用"));
else if (nTypeModel == 1) else if (nTypeModel == 1)
m_WarningMsg->setText(tr("该模板没有训练,并且没有图像")); m_WarningMsg->setText(tr("该模板没有训练,并且没有图像"));
else if (nTypeModel == 2) else if (nTypeModel == 2)
m_WarningMsg->setText(tr("该模板训练失败,请检查模板图片中是否有其他类型的图像或该模板是否被重复添加")); m_WarningMsg->setText(tr("该模板训练失败,请检查模板图片中是否有其他类型的图像或该模板是否被重复添加"));
else else
m_WarningMsg->setText(QString("。。。。。。")); m_WarningMsg->setText(QString("。。。。。。"));
}*/ }*/
} }
@ -602,17 +602,17 @@ void QModelMgrDlg::TrainAllTskFunc()
{ {
QStringList lstAll = m_pModelMgr->getAllModelName(); QStringList lstAll = m_pModelMgr->getAllModelName();
QMap<QString, vector<Mat>> mpAllImage = m_pModelMgr->getAllModelImage(); QMap<QString, vector<Mat>> mpAllImage = m_pModelMgr->getAllModelImage();
emit sgPrograssShow(tr("模板更新进度"), tr("正在初始化所有模板 共需要训练%1个模板,请稍后.....").arg(lstAll.size()), lstAll.size(), emPross_Init); emit sgPrograssShow(tr("模板更新进度"), tr("正在初始化所有模板 共需要训练%1个模板,请稍后.....").arg(lstAll.size()), lstAll.size(), emPross_Init);
int nIndex = 0; int nIndex = 0;
for (; nIndex < lstAll.size() && (!m_trainAllTsk->getStopFlag()); nIndex++) { for (; nIndex < lstAll.size() && (!m_trainAllTsk->getStopFlag()); nIndex++) {
emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue); emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue);
QString m_modelName = lstAll.at(nIndex); QString m_modelName = lstAll.at(nIndex);
TempImage *pImg = m_pModelMgr->getTmpImage(m_modelName); TempImage *pImg = m_pModelMgr->getTmpImage(m_modelName);
if (!pImg) { if (!pImg) {
continue; continue;
} }
QString str = tr("正在训练%1的模板 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size()); QString str = tr("正在训练%1的模板 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable); emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable);
IWheelModel *pModel = m_pModelMgr->getModel(m_modelName); IWheelModel *pModel = m_pModelMgr->getModel(m_modelName);
std::vector<cv::Mat> mMat = pImg->getImgVector(); std::vector<cv::Mat> mMat = pImg->getImgVector();
ICompareModel *m_compareModel = pModel->getImageComModel(); ICompareModel *m_compareModel = pModel->getImageComModel();
@ -667,8 +667,8 @@ void QModelMgrDlg::TrainAllTskFunc()
pModel->setPicPath(n_Pic_path); pModel->setPicPath(n_Pic_path);
m_pModelMgr->modModel(m_modelName); m_pModelMgr->modModel(m_modelName);
} }
str = tr("%1的模板获取特征 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size()); str = tr("%1的模板获取特征 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable); emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable);
m_compareModel->setIsEnableCache(true); m_compareModel->setIsEnableCache(true);
if (m_trainAllTsk->getStopFlag()) if (m_trainAllTsk->getStopFlag())
@ -704,14 +704,14 @@ void QModelMgrDlg::TrainAllTskFunc()
ui.ModelMgr_modelpic_lable->setPixmap(pix.scaled(129, 129)); ui.ModelMgr_modelpic_lable->setPixmap(pix.scaled(129, 129));
emit sgTrainShowInfo(m_modelName); emit sgTrainShowInfo(m_modelName);
str = tr("%1的模板训练完成 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size()); str = tr("%1的模板训练完成 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue); emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue);
} }
if (!m_trainAllTsk->getStopFlag()) if (!m_trainAllTsk->getStopFlag())
{ {
emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_Finish); emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_Finish);
emit sgPrograssShow(tr("模板更新进度"), tr("全部模板更新完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), nIndex, emPross_enable); emit sgPrograssShow(tr("模板更新进度"), tr("全部模板更新完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), nIndex, emPross_enable);
QString str = m_pCtrl->getUserName() + ":" + tr("对全部模板进行了重新训练,共%1个模板").arg(lstAll.size()); QString str = m_pCtrl->getUserName() + ":" + tr("对全部模板进行了重新训练,共%1个模板").arg(lstAll.size());
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
} }
} }
@ -721,29 +721,29 @@ void QModelMgrDlg::TrainOneTskFunc()
if (m_strTrainModel.isEmpty()) if (m_strTrainModel.isEmpty())
return; return;
int m_step = 5; int m_step = 5;
QString str = tr("模板正在准备请稍后....."); QString str = tr("模板正在准备请稍后.....");
emit sgPrograssShow(tr("模板训练进度"), str, m_step, emPross_Init); emit sgPrograssShow(tr("模板训练进度"), str, m_step, emPross_Init);
IWheelModel*pModel = m_pModelMgr->getModel(m_strTrainModel); IWheelModel*pModel = m_pModelMgr->getModel(m_strTrainModel);
if (!pModel) { if (!pModel) {
return; return;
} }
emit sgPrograssShow(tr("模板训练进度"), str, 0, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 0, emPross_SetValue);
if (m_trainOneTsk->getStopFlag()) if (m_trainOneTsk->getStopFlag())
return; return;
TempImage *pTempImg = pModel->getTempImage(); TempImage *pTempImg = pModel->getTempImage();
std::vector<Mat> m_MatVec = pTempImg->getImgVector(); std::vector<Mat> m_MatVec = pTempImg->getImgVector();
if (m_MatVec.size() <= 0) if (m_MatVec.size() <= 0)
{ {
emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练").arg(m_strTrainModel), 6, emPross_enable); emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练").arg(m_strTrainModel), 6, emPross_enable);
emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练").arg(m_strTrainModel), 6, emPross_Finish); emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练").arg(m_strTrainModel), 6, emPross_Finish);
return; return;
} }
if (m_trainOneTsk->getStopFlag()) if (m_trainOneTsk->getStopFlag())
return; return;
/*这里需要加载提示 说明模板正在训练*/ /*这里需要加载提示 说明模板正在训练*/
emit sgPrograssShow(tr("模板训练进度"), str, 1, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 1, emPross_SetValue);
ICompareModel *m_compareModel = pModel->getImageComModel(); ICompareModel *m_compareModel = pModel->getImageComModel();
//std::vector<cv::Mat> firstFalseSample = m_pModelMgr->getFirstImgFromFalse(pModel->getModelID()); //std::vector<cv::Mat> firstFalseSample = m_pModelMgr->getFirstImgFromFalse(pModel->getModelID());
@ -790,7 +790,7 @@ void QModelMgrDlg::TrainOneTskFunc()
m_compareModel->calculateAllParams(m_MatVec); m_compareModel->calculateAllParams(m_MatVec);
if (m_trainOneTsk->getStopFlag()) if (m_trainOneTsk->getStopFlag())
return; return;
emit sgPrograssShow(tr("模板训练进度"), str, 2, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 2, emPross_SetValue);
hubBase::mkdir(m_pCtrl->appRoot() + "\\pattern"); hubBase::mkdir(m_pCtrl->appRoot() + "\\pattern");
QString templatepath = m_pCtrl->appRoot() + "\\pattern\\template\\"; QString templatepath = m_pCtrl->appRoot() + "\\pattern\\template\\";
hubBase::mkdir(templatepath); hubBase::mkdir(templatepath);
@ -812,9 +812,9 @@ void QModelMgrDlg::TrainOneTskFunc()
} }
if (m_trainOneTsk->getStopFlag()) if (m_trainOneTsk->getStopFlag())
return; return;
emit sgPrograssShow(tr("模板训练进度"), str, 3, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 3, emPross_SetValue);
emit sgPrograssShow(tr("模板训练进度"), str, 4, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 4, emPross_SetValue);
emit sgPrograssShow(tr("模板训练进度"), tr("%1的模板 正在获取特征值,请稍后....").arg(m_strTrainModel), 4, emPross_SetLable); emit sgPrograssShow(tr("模板训练进度"), tr("%1的模板 正在获取特征值,请稍后....").arg(m_strTrainModel), 4, emPross_SetLable);
m_compareModel->setIsEnableCache(false); m_compareModel->setIsEnableCache(false);
//if (pModel->getDiameter() && pModel->getThickness()) //if (pModel->getDiameter() && pModel->getThickness())
@ -833,11 +833,11 @@ void QModelMgrDlg::TrainOneTskFunc()
m_compareModel->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/); m_compareModel->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/);
if (m_trainOneTsk->getStopFlag()) if (m_trainOneTsk->getStopFlag())
return; return;
emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_SetValue); emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_SetValue);
emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_Finish); emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_Finish);
emit sgPrograssShow(tr("模板训练进度"), tr("训练完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), 6, emPross_enable); emit sgPrograssShow(tr("模板训练进度"), tr("训练完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), 6, emPross_enable);
emit sgTrainShowInfo(m_strTrainModel); emit sgTrainShowInfo(m_strTrainModel);
str = m_pCtrl->getUserName() + ":" + tr("训练了模板:%1").arg(m_strTrainModel); str = m_pCtrl->getUserName() + ":" + tr("训练了模板:%1").arg(m_strTrainModel);
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
m_strTrainModel.clear(); m_strTrainModel.clear();
} }
@ -853,7 +853,7 @@ void QModelMgrDlg::updateWidget(QString str)
m_pShowImgList->clear(); m_pShowImgList->clear();
m_pShowImgList->setProperty("model", str); m_pShowImgList->setProperty("model", str);
/* /*
*/ */
m_pShowImgList->setIconSize(QSize(WS_PICSIZELIST_ITEM, WS_PICSIZELIST_ITEM)); m_pShowImgList->setIconSize(QSize(WS_PICSIZELIST_ITEM, WS_PICSIZELIST_ITEM));
m_pShowImgList->setAcceptDrops(false); m_pShowImgList->setAcceptDrops(false);
@ -873,14 +873,14 @@ void QModelMgrDlg::updateWidget(QString str)
bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel) bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel)
{ {
//抠图+ //抠图+
cv::Mat dst = imread(string((const char *)strPath.toLocal8Bit()), 0); cv::Mat dst = imread(string((const char *)strPath.toLocal8Bit()), 0);
if (dst.empty()) { if (dst.empty()) {
return false; return false;
} }
if (dst.rows >= 900 || dst.cols >= 900) if (dst.rows >= 900 || dst.cols >= 900)
return false; return false;
//显示 //显示
QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz"); QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz");
cv::Mat show; cv::Mat show;
cv::resize(dst, show, cv::Size(int(dst.cols * 1.5) / 4 * 4, dst.rows*1.5)); cv::resize(dst, show, cv::Size(int(dst.cols * 1.5) / 4 * 4, dst.rows*1.5));
@ -906,7 +906,7 @@ bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel)
cv::imwrite(string((const char *)strPath2.toLocal8Bit()), dst); cv::imwrite(string((const char *)strPath2.toLocal8Bit()), dst);
//cv::imwrite(strPath2.toLatin1().data(), dst); //cv::imwrite(strPath2.toLatin1().data(), dst);
pModel->getTempImage()->add(dst, strFileName, strPath2); pModel->getTempImage()->add(dst, strFileName, strPath2);
QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("个图像")); QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("个图像"));
ui.label_imgNum->setText(m_str); ui.label_imgNum->setText(m_str);
return true; return true;
} }
@ -981,43 +981,43 @@ bool QModelMgrDlg::onMessageBox(QMessageBox::Icon ntype, QString strTitle, QStri
button = QMessageBox::Cancel; button = QMessageBox::Cancel;
QMessageBox infobox(ntype, strTitle, strAtl, QMessageBox::Ok | button, this); QMessageBox infobox(ntype, strTitle, strAtl, QMessageBox::Ok | button, this);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
infobox.setButtonText(QMessageBox::Ok, tr("确认")); infobox.setButtonText(QMessageBox::Ok, tr("确认"));
infobox.setButtonText(QMessageBox::Cancel, tr("取消")); infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
return (infobox.exec() == QMessageBox::Ok); return (infobox.exec() == QMessageBox::Ok);
} }
Q_SLOT void QModelMgrDlg::onButtonClicked() Q_SLOT void QModelMgrDlg::onButtonClicked()
{ {
QString strObj = sender()->objectName(); QString strObj = sender()->objectName();
if ("m_pbAdd" == strObj)//添加新型号 if ("m_pbAdd" == strObj)//添加新型号
{ {
onAddModel(); onAddModel();
} }
else if ("m_pbDel" == strObj)//删除型号 else if ("m_pbDel" == strObj)//删除型号
{ {
onDelModel(); onDelModel();
} }
else if ("m_pbMod" == strObj)//修改型号 else if ("m_pbMod" == strObj)//修改型号
{ {
onModifyModel(); onModifyModel();
} }
else if ("m_pbModName" == strObj)//修改型号名 else if ("m_pbModName" == strObj)//修改型号名
{ {
onChangeModelName(); onChangeModelName();
} }
else if ("m_pbTrain" == strObj)//训练单个 else if ("m_pbTrain" == strObj)//训练单个
{ {
onTrainModel(); onTrainModel();
} }
else if ("m_pbTrainAll" == strObj)//训练全部 else if ("m_pbTrainAll" == strObj)//训练全部
{ {
onTrainAllModels(); onTrainAllModels();
} }
else if ("m_pbAddPic" == strObj)//添加图片 else if ("m_pbAddPic" == strObj)//添加图片
{ {
onAddPic2Model(); onAddPic2Model();
} }
else if ("m_pbDelAll" == strObj)//删除所有 else if ("m_pbDelAll" == strObj)//删除所有
{ {
onDelAllModels(); onDelAllModels();
} }
@ -1031,7 +1031,7 @@ void QModelMgrDlg::showEvent(QShowEvent *event)
strModels.removeAll("NG"); strModels.removeAll("NG");
m_pModelLists->setModelList(strModels); m_pModelLists->setModelList(strModels);
QString m_str = QString("%1 %2 个型号").arg(tr("")).arg(strModels.size()).arg(tr("个型号")); QString m_str = QString("%1 %2 个型号").arg(tr("")).arg(strModels.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str); ui.ModelMgr_label_Model_number->setText(m_str);
} }
} }

@ -1,4 +1,4 @@
#include "QSettingDlg.h" #include "QSettingDlg.h"
QSettingDlg::QSettingDlg(QWidget *parent) QSettingDlg::QSettingDlg(QWidget *parent)
: QWidget(parent) : QWidget(parent)

@ -1,5 +1,6 @@
#include "QSystemSettingDlg.h" #include "QSystemSettingDlg.h"
#include "QDir" #include <QDir>
#include <QObject>
#include "QCheckBox" #include "QCheckBox"
#include "QLabel" #include "QLabel"
#include "QSpinBox" #include "QSpinBox"
@ -10,24 +11,24 @@
#include <QDesktopServices> #include <QDesktopServices>
#include "InfoFile.h" #include "InfoFile.h"
#pragma execution_character_set("utf-8")
#define DEVELOP_UI_CHECK_SAVE_GOOD "SaveGoodcheckBox" #define DEVELOP_UI_CHECK_SAVE_GOOD "SaveGoodcheckBox"
#define DEVELOP_UI_CHECK_SAVE_BAD "SaveBadcheckBox" #define DEVELOP_UI_CHECK_SAVE_BAD "SaveBadcheckBox"
#define DEVELOP_UI_CHECK_SAVE_CUTGOOD "SaveCutGoodcheckBox" #define DEVELOP_UI_CHECK_SAVE_CUTGOOD "SaveCutGoodcheckBox"
#define DEVELOP_UI_CHECK_SAVE_CUTBAD "SaveCutBadcheckBox" #define DEVELOP_UI_CHECK_SAVE_CUTBAD "SaveCutBadcheckBox"
#define DEVELOP_UI_CHECK_CHKBOXALL2A "chkBoxAll2A" #define DEVELOP_UI_CHECK_CHKBOXALL2A "chkBoxAll2A"
#pragma execution_character_set("utf-8")
const QString DEVELOP_DETECT_CAMERE_VIRSUAL = QObject::tr("虚拟相机触发");
const QString DEVELOP_DETECT_CAMERE_TRUE = QObject::tr("硬件相机触发");
const QString DEVELOP_DETECT_DEBUG_NOUSER = QObject::tr("调试免登陆");
const QString DEVELOP_DETECT_DEBUG_USER = QObject::tr("正常工作模式");
#define DEVELOP_DETECT_CAMERE_VIRSUAL tr("虚拟相机触发") const QString DEVELOP_DETECT_CAM_OUTTRIGER = QObject::tr("传感器触发");
#define DEVELOP_DETECT_CAMERE_TRUE tr("硬件相机触发") const QString DEVELOP_DETECT_CAM_SOFTER = QObject::tr("软件触发");
#define DEVELOP_DETECT_DEBUG_NOUSER tr("调试免登陆")
#define DEVELOP_DETECT_DEBUG_USER tr("正常工作模式")
#define DEVELOP_DETECT_CAM_OUTTRIGER tr("传感器触发")
#define DEVELOP_DETECT_CAM_SOFTER tr("软件触发")
#define DEVELOP_PLC_TRIGER_DOWM tr("下降沿触发") const QString DEVELOP_PLC_TRIGER_DOWM = QObject::tr("下降沿触发");
#define DEVELOP_PLC_TRIGER_UP tr("上升沿触发") const QString DEVELOP_PLC_TRIGER_UP = QObject::tr("上升沿触发");
QSystemSettingDlg::QSystemSettingDlg(QWidget *parent) QSystemSettingDlg::QSystemSettingDlg(QWidget *parent)
: QWidget(parent) : QWidget(parent)
@ -35,19 +36,19 @@ QSystemSettingDlg::QSystemSettingDlg(QWidget *parent)
ui.setupUi(this); ui.setupUi(this);
m_setting = new QSettings(".\\user\\systemfile.ini", QSettings::IniFormat); m_setting = new QSettings(".\\user\\systemfile.ini", QSettings::IniFormat);
readSettingFile(); readSettingFile();
m_listwidgetItemStr.append(tr("相关设备配置")); m_listwidgetItemStr.append(tr("相关设备配置"));
m_listwidgetItemStr.append(tr("检测图像设置")); m_listwidgetItemStr.append(tr("检测图像设置"));
m_listwidgetItemStr.append(tr("PLC相关设置")); m_listwidgetItemStr.append(tr("PLC相关设置"));
m_listwidgetItemStr.append(tr("报警灯测试")); m_listwidgetItemStr.append(tr("报警灯测试"));
m_listwidgetItemStr.append(tr("高级功能")); m_listwidgetItemStr.append(tr("高级功能"));
{ {
InitTreeWidget(ui.treeWidget); InitTreeWidget(ui.treeWidget);
addComRoot(ui.treeWidget, m_listwidgetItemStr.at(0));//相关设备配置 addComRoot(ui.treeWidget, m_listwidgetItemStr.at(0));//相关设备配置
addPicRoot(ui.treeWidget, m_listwidgetItemStr.at(1));//检测图像设置 addPicRoot(ui.treeWidget, m_listwidgetItemStr.at(1));//检测图像设置
addPLCRoot(ui.treeWidget, m_listwidgetItemStr.at(2));//PLC相关设置 addPLCRoot(ui.treeWidget, m_listwidgetItemStr.at(2));//PLC相关设置
addLightRoot(ui.treeWidget, m_listwidgetItemStr.at(3));//报警灯测试 addLightRoot(ui.treeWidget, m_listwidgetItemStr.at(3));//报警灯测试
ui.treeWidget->expandAll(); ui.treeWidget->expandAll();
addSuperRoot(ui.treeWidget, m_listwidgetItemStr.at(4));//高级功能 addSuperRoot(ui.treeWidget, m_listwidgetItemStr.at(4));//高级功能
} }
{ {
@ -151,8 +152,8 @@ bool QSystemSettingDlg::InitTreeWidget(QTreeWidget* pTreewidget)
if (pTreewidget == NULL) if (pTreewidget == NULL)
return false; return false;
QStringList header; QStringList header;
header.append(tr("属性")); header.append(tr("属性"));
header.append(tr("")); header.append(tr(""));
pTreewidget->setHeaderLabels(header); pTreewidget->setHeaderLabels(header);
pTreewidget->header()->setStretchLastSection(true); pTreewidget->header()->setStretchLastSection(true);
pTreewidget->setColumnCount(2); pTreewidget->setColumnCount(2);
@ -165,8 +166,8 @@ bool QSystemSettingDlg::InitTreeWidget(QTreeWidget* pTreewidget)
void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strName /*= QString()*/) void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strName /*= QString()*/)
{ {
// QTreeWidgetItem *m_ComItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("相关设备配置"))); // QTreeWidgetItem *m_ComItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("相关设备配置")));
// pStationSetButton = new QPushButton(tr("打开配置页面")); // pStationSetButton = new QPushButton(tr("打开配置页面"));
// pTreewidget->setItemWidget(m_ComItems, 1, pStationSetButton); // pTreewidget->setItemWidget(m_ComItems, 1, pStationSetButton);
// m_ComItems->setSizeHint(1, QSize(100, 30)); // m_ComItems->setSizeHint(1, QSize(100, 30));
// pStationSetButton->setObjectName("pStationSetButton"); // pStationSetButton->setObjectName("pStationSetButton");
@ -174,7 +175,7 @@ void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strNa
// m_listObj.append(pStationSetButton); // m_listObj.append(pStationSetButton);
// m_TreeItemMap.insert(strName, m_ComItems); // m_TreeItemMap.insert(strName, m_ComItems);
QTreeWidgetItem *pLanguage = new QTreeWidgetItem(pTreewidget, QStringList(tr("语言"))); QTreeWidgetItem *pLanguage = new QTreeWidgetItem(pTreewidget, QStringList(tr("语言")));
m_Language = new QComboBox; m_Language = new QComboBox;
pTreewidget->setItemWidget(pLanguage, 1, m_Language); pTreewidget->setItemWidget(pLanguage, 1, m_Language);
m_TreeItemMap.insert("language", pLanguage); m_TreeItemMap.insert("language", pLanguage);
@ -201,8 +202,8 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
return strDirNames; return strDirNames;
} }
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
dir.setSorting(QDir::DirsFirst); // 文件夹优先 dir.setSorting(QDir::DirsFirst); // 文件夹优先
// 转换成一个List // 转换成一个List
QFileInfoList list = dir.entryInfoList(); QFileInfoList list = dir.entryInfoList();
if (list.size() < 1) if (list.size() < 1)
{ {
@ -213,7 +214,7 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
{ {
QFileInfo fileInfo = list.at(i); QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName(); QString tt = fileInfo.fileName();
// 如果是文件夹 // 如果是文件夹
bool bisDir = fileInfo.isDir(); bool bisDir = fileInfo.isDir();
if (bisDir) if (bisDir)
{ {
@ -226,65 +227,65 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName) void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName)
{ {
QTreeWidgetItem *m_RootItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("检测图像设置"))); QTreeWidgetItem *m_RootItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("检测图像设置")));
m_TreeItemMap.insert(strName, m_RootItems); m_TreeItemMap.insert(strName, m_RootItems);
m_RootItems->setSizeHint(1, QSize(100, 30)); m_RootItems->setSizeHint(1, QSize(100, 30));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测背景更换")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测背景更换"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测结果")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测结果"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("图像保存路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("图像保存路径"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("设置保存路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("设置保存路径"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("打开图像路径")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("打开图像路径"))));
picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存当前设置")))); picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存当前设置"))));
m_RootItems->addChildren(picitems); m_RootItems->addChildren(picitems);
QCheckBox *m_saveImgRes_good = new QCheckBox; QCheckBox *m_saveImgRes_good = new QCheckBox;
m_saveImgRes_good->setText(tr("保存已匹配图")); m_saveImgRes_good->setText(tr("保存已匹配图"));
m_saveImgRes_good->setObjectName("m_saveImgRes_good"); m_saveImgRes_good->setObjectName("m_saveImgRes_good");
connect(m_saveImgRes_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_saveImgRes_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgRes_good->setChecked(DetectState::instance()->saveCutGood == (int)true); m_saveImgRes_good->setChecked(DetectState::instance()->saveCutGood == (int)true);
QCheckBox *m_saveImgRes_bad = new QCheckBox; QCheckBox *m_saveImgRes_bad = new QCheckBox;
m_saveImgRes_bad->setText(tr("保存无匹配图")); m_saveImgRes_bad->setText(tr("保存无匹配图"));
m_saveImgRes_bad->setObjectName("m_saveImgRes_bad"); m_saveImgRes_bad->setObjectName("m_saveImgRes_bad");
connect(m_saveImgRes_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_saveImgRes_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgRes_bad->setChecked(DetectState::instance()->saveCutBad == (int)true); m_saveImgRes_bad->setChecked(DetectState::instance()->saveCutBad == (int)true);
QCheckBox *m_saveImgSrc_good = new QCheckBox; QCheckBox *m_saveImgSrc_good = new QCheckBox;
m_saveImgSrc_good->setText(tr("保存已匹配图")); m_saveImgSrc_good->setText(tr("保存已匹配图"));
m_saveImgSrc_good->setObjectName("m_saveImgSrc_good"); m_saveImgSrc_good->setObjectName("m_saveImgSrc_good");
connect(m_saveImgSrc_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_saveImgSrc_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgSrc_good->setChecked(DetectState::instance()->saveGood == (int)true); m_saveImgSrc_good->setChecked(DetectState::instance()->saveGood == (int)true);
QCheckBox *m_saveImgSrc_bad = new QCheckBox; QCheckBox *m_saveImgSrc_bad = new QCheckBox;
m_saveImgSrc_bad->setText(tr("保存无匹配图")); m_saveImgSrc_bad->setText(tr("保存无匹配图"));
m_saveImgSrc_bad->setObjectName("m_saveImgSrc_bad"); m_saveImgSrc_bad->setObjectName("m_saveImgSrc_bad");
connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true); m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true);
QCheckBox *m_ResAll2A = new QCheckBox; QCheckBox *m_ResAll2A = new QCheckBox;
m_ResAll2A->setText(tr("轮毂全去A通道")); m_ResAll2A->setText(tr("轮毂全去A通道"));
m_ResAll2A->setObjectName("m_ResAll2A"); m_ResAll2A->setObjectName("m_ResAll2A");
connect(m_ResAll2A, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_ResAll2A, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_ResAll2A->setChecked(DetectState::instance()->m_bObjAll2A == (int)true); m_ResAll2A->setChecked(DetectState::instance()->m_bObjAll2A == (int)true);
QPushButton* pChangeBGbp = new QPushButton(tr("查看检测背景")); QPushButton* pChangeBGbp = new QPushButton(tr("查看检测背景"));
connect(pChangeBGbp, SIGNAL(clicked()), this, SLOT(onChangeBackground())); connect(pChangeBGbp, SIGNAL(clicked()), this, SLOT(onChangeBackground()));
m_pLbShowPath = new QLabel; m_pLbShowPath = new QLabel;
m_pLbShowPath->setText(DetectState::instance()->m_SaveImgDirPath); m_pLbShowPath->setText(DetectState::instance()->m_SaveImgDirPath);
QPushButton *pbSetSavePath = new QPushButton(tr("设置保存路径")); QPushButton *pbSetSavePath = new QPushButton(tr("设置保存路径"));
pbSetSavePath->setObjectName("pbSetSavePath"); pbSetSavePath->setObjectName("pbSetSavePath");
connect(pbSetSavePath, SIGNAL(clicked()), this, SLOT(onOpenDataPath())); connect(pbSetSavePath, SIGNAL(clicked()), this, SLOT(onOpenDataPath()));
QPushButton *pbOpenImgPath = new QPushButton(tr("打开图像路径")); QPushButton *pbOpenImgPath = new QPushButton(tr("打开图像路径"));
pbOpenImgPath->setObjectName("pbOpenImgPath"); pbOpenImgPath->setObjectName("pbOpenImgPath");
connect(pbOpenImgPath, SIGNAL(clicked()), this, SLOT(onOpenDataPath())); connect(pbOpenImgPath, SIGNAL(clicked()), this, SLOT(onOpenDataPath()));
QPushButton* pSavePara = new QPushButton(tr("保存参数")); QPushButton* pSavePara = new QPushButton(tr("保存参数"));
pSavePara->setObjectName("pSavePara"); pSavePara->setObjectName("pSavePara");
connect(pSavePara, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton())); connect(pSavePara, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton()));
@ -324,22 +325,22 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName)
void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName) void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
{ {
QTreeWidgetItem *m_PLCItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("PLC相关设置"))); QTreeWidgetItem *m_PLCItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("PLC相关设置")));
m_TreeItemMap.insert(strName, m_PLCItems); m_TreeItemMap.insert(strName, m_PLCItems);
m_PLCItems->setSizeHint(1, QSize(100, 30)); m_PLCItems->setSizeHint(1, QSize(100, 30));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发滤波(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发滤波(ms)"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发延时(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发延时(ms)"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发脉宽(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发脉宽(ms)"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光源熄灭延时时间(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光源熄灭延时时间(ms)"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发类型")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发类型"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保持结果时长(ms)")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保持结果时长(ms)"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("连接超时次数")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("连接超时次数"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("超时是否显示信息")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("超时是否显示信息"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否自动重启服务器")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否自动重启服务器"))));
PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否保存超时日志")))); PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否保存超时日志"))));
m_PLCItems->addChildren(PLCitems); m_PLCItems->addChildren(PLCitems);
QPushButton *savePLCpara = new QPushButton(tr("发送并保存")); QPushButton *savePLCpara = new QPushButton(tr("发送并保存"));
m_PLCTrigerFilter = new QSpinBox(); m_PLCTrigerFilter = new QSpinBox();
m_PLCTrigerFilter->setMinimum(1); m_PLCTrigerFilter->setMinimum(1);
m_PLCTrigerFilter->setMaximum(65536); m_PLCTrigerFilter->setMaximum(65536);
@ -377,26 +378,26 @@ void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
m_PLC_RestartSeverCount = new QSpinBox(); m_PLC_RestartSeverCount = new QSpinBox();
m_PLC_RestartSeverCount->setMinimum(1); m_PLC_RestartSeverCount->setMinimum(1);
m_PLC_RestartSeverCount->setMaximum(65536); m_PLC_RestartSeverCount->setMaximum(65536);
m_PLC_RestartSeverCount->setToolTip(tr("超时提醒n次后自动重启服务")); m_PLC_RestartSeverCount->setToolTip(tr("超时提醒n次后自动重启服务"));
m_PLC_RestartSeverCount->setValue(DetectState::instance()->m_PLC_RestartSeverCount); m_PLC_RestartSeverCount->setValue(DetectState::instance()->m_PLC_RestartSeverCount);
QCheckBox *m_PLC_ShowTimerOutMsg = new QCheckBox; QCheckBox *m_PLC_ShowTimerOutMsg = new QCheckBox;
m_PLC_ShowTimerOutMsg->setText(tr("是否显示提示")); m_PLC_ShowTimerOutMsg->setText(tr("是否显示提示"));
m_PLC_ShowTimerOutMsg->setText(tr("勾选后通信超时时会显示提醒信息")); m_PLC_ShowTimerOutMsg->setText(tr("勾选后通信超时时会显示提醒信息"));
m_PLC_ShowTimerOutMsg->setObjectName("m_PLC_ShowTimerOutMsg"); m_PLC_ShowTimerOutMsg->setObjectName("m_PLC_ShowTimerOutMsg");
connect(m_PLC_ShowTimerOutMsg, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_PLC_ShowTimerOutMsg, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_ShowTimerOutMsg->setChecked(DetectState::instance()->m_PLC_ShowTimerOutMsg == (int)true); m_PLC_ShowTimerOutMsg->setChecked(DetectState::instance()->m_PLC_ShowTimerOutMsg == (int)true);
QCheckBox *m_PLC_IsResServer = new QCheckBox; QCheckBox *m_PLC_IsResServer = new QCheckBox;
m_PLC_IsResServer->setText(tr("是否自动重启服务器")); m_PLC_IsResServer->setText(tr("是否自动重启服务器"));
m_PLC_IsResServer->setToolTip(tr("勾选后通信超时次数达到后系统将自动重启服务PLC会自动重新连接")); m_PLC_IsResServer->setToolTip(tr("勾选后通信超时次数达到后系统将自动重启服务PLC会自动重新连接"));
m_PLC_IsResServer->setObjectName("m_PLC_IsResServer"); m_PLC_IsResServer->setObjectName("m_PLC_IsResServer");
connect(m_PLC_IsResServer, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_PLC_IsResServer, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_IsResServer->setChecked(DetectState::instance()->m_PLC_IsResServer == (int)true); m_PLC_IsResServer->setChecked(DetectState::instance()->m_PLC_IsResServer == (int)true);
QCheckBox *m_PLC_SaveMsgInLog = new QCheckBox; QCheckBox *m_PLC_SaveMsgInLog = new QCheckBox;
m_PLC_SaveMsgInLog->setText(tr("保存信息到系统日志")); m_PLC_SaveMsgInLog->setText(tr("保存信息到系统日志"));
m_PLC_SaveMsgInLog->setToolTip(tr("勾选后表示超时信息将自动保存到系统日志中,便于查询")); m_PLC_SaveMsgInLog->setToolTip(tr("勾选后表示超时信息将自动保存到系统日志中,便于查询"));
m_PLC_SaveMsgInLog->setObjectName("m_PLC_SaveMsgInLog"); m_PLC_SaveMsgInLog->setObjectName("m_PLC_SaveMsgInLog");
connect(m_PLC_SaveMsgInLog, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_PLC_SaveMsgInLog, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_SaveMsgInLog->setChecked(DetectState::instance()->m_PLC_SaveMsgInLog == (int)true); m_PLC_SaveMsgInLog->setChecked(DetectState::instance()->m_PLC_SaveMsgInLog == (int)true);
@ -437,18 +438,18 @@ void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
} }
void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName) void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName)
{ {
QTreeWidgetItem *m_LightItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("报警灯测试"))); QTreeWidgetItem *m_LightItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("报警灯测试")));
m_TreeItemMap.insert(strName, m_LightItems); m_TreeItemMap.insert(strName, m_LightItems);
m_LightItems->setSizeHint(1, QSize(100, 30)); m_LightItems->setSizeHint(1, QSize(100, 30));
lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("红灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("红灯"))));
lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("绿灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("绿灯"))));
lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("黄灯")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("黄灯"))));
lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("蜂鸣")))); lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("蜂鸣"))));
m_LightItems->addChildren(lightitems); m_LightItems->addChildren(lightitems);
QPushButton *redLight = new QPushButton(tr("红灯闪一下")); QPushButton *redLight = new QPushButton(tr("红灯闪一下"));
QPushButton *grenLight = new QPushButton(tr("绿灯闪一下")); QPushButton *grenLight = new QPushButton(tr("绿灯闪一下"));
QPushButton *yellLight = new QPushButton(tr("黄灯闪一下")); QPushButton *yellLight = new QPushButton(tr("黄灯闪一下"));
QPushButton *beeLight = new QPushButton(tr("蜂鸣响一下")); QPushButton *beeLight = new QPushButton(tr("蜂鸣响一下"));
redLight->setObjectName("redLight"); redLight->setObjectName("redLight");
grenLight->setObjectName("grenLight"); grenLight->setObjectName("grenLight");
yellLight->setObjectName("yellLight"); yellLight->setObjectName("yellLight");
@ -474,26 +475,26 @@ void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName)
void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString strName) void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString strName)
{ {
QTreeWidgetItem *m_DevelopItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("开发者使用"))); QTreeWidgetItem *m_DevelopItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("开发者使用")));
m_TreeItemMap.insert(strName, m_DevelopItems); m_TreeItemMap.insert(strName, m_DevelopItems);
m_DevelopItems->setSizeHint(1, QSize(100, 30)); m_DevelopItems->setSizeHint(1, QSize(100, 30));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机模式"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("虚拟相机触发时间")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("虚拟相机触发时间"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("系统模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("系统模式"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发模式")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发模式"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送心跳包")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送心跳包"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送心跳包")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送心跳包"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送通道结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送通道结果"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送检测结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送检测结果"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送通道结果")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送通道结果"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光栅使用标志")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光栅使用标志"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存高度厚度数据")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存高度厚度数据"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("通道分配")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("通道分配"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("启动时是否检测")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("启动时是否检测"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度数据")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度数据"))));
developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度采样数据")))); developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度采样数据"))));
m_DevelopItems->addChildren(developitems); m_DevelopItems->addChildren(developitems);
m_pCameraTrgType = new QComboBox(); m_pCameraTrgType = new QComboBox();
@ -515,72 +516,72 @@ void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString str
m_pSystype->addItems(sysStrList); m_pSystype->addItems(sysStrList);
QCheckBox *m_AutoSendTick2COM = new QCheckBox; QCheckBox *m_AutoSendTick2COM = new QCheckBox;
m_AutoSendTick2COM->setText(tr("串口发送心跳包")); m_AutoSendTick2COM->setText(tr("串口发送心跳包"));
m_AutoSendTick2COM->setObjectName("m_AutoSendTick2COM"); m_AutoSendTick2COM->setObjectName("m_AutoSendTick2COM");
connect(m_AutoSendTick2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_AutoSendTick2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_AutoSendTick2COM->setChecked(DetectState::instance()->m_AutoSendTick2COM == (int)true); m_AutoSendTick2COM->setChecked(DetectState::instance()->m_AutoSendTick2COM == (int)true);
QCheckBox *m_AutoSendTick2Net = new QCheckBox; QCheckBox *m_AutoSendTick2Net = new QCheckBox;
m_AutoSendTick2Net->setText(tr("网络发送心跳包")); m_AutoSendTick2Net->setText(tr("网络发送心跳包"));
m_AutoSendTick2Net->setObjectName("m_AutoSendTick2Net"); m_AutoSendTick2Net->setObjectName("m_AutoSendTick2Net");
connect(m_AutoSendTick2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_AutoSendTick2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_AutoSendTick2Net->setChecked(DetectState::instance()->m_AutoSendTick2Net == (int)true); m_AutoSendTick2Net->setChecked(DetectState::instance()->m_AutoSendTick2Net == (int)true);
QCheckBox *m_SendChannelRes2COM = new QCheckBox; QCheckBox *m_SendChannelRes2COM = new QCheckBox;
m_SendChannelRes2COM->setText(tr("串口发送通道结果")); m_SendChannelRes2COM->setText(tr("串口发送通道结果"));
m_SendChannelRes2COM->setObjectName("m_SendChannelRes2COM"); m_SendChannelRes2COM->setObjectName("m_SendChannelRes2COM");
connect(m_SendChannelRes2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_SendChannelRes2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendChannelRes2COM->setChecked(DetectState::instance()->m_SendChannelRes2COM == (int)true); m_SendChannelRes2COM->setChecked(DetectState::instance()->m_SendChannelRes2COM == (int)true);
QCheckBox *m_SendDetectStr2Net = new QCheckBox; QCheckBox *m_SendDetectStr2Net = new QCheckBox;
m_SendDetectStr2Net->setText(tr("网络发送检测结果")); m_SendDetectStr2Net->setText(tr("网络发送检测结果"));
m_SendDetectStr2Net->setObjectName("m_SendDetectStr2Net"); m_SendDetectStr2Net->setObjectName("m_SendDetectStr2Net");
connect(m_SendDetectStr2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_SendDetectStr2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendDetectStr2Net->setChecked(DetectState::instance()->m_SendDetectStr2Net == (int)true); m_SendDetectStr2Net->setChecked(DetectState::instance()->m_SendDetectStr2Net == (int)true);
QCheckBox *m_SendChannelRes2Net = new QCheckBox; QCheckBox *m_SendChannelRes2Net = new QCheckBox;
m_SendChannelRes2Net->setText(tr("网络发送通道结果")); m_SendChannelRes2Net->setText(tr("网络发送通道结果"));
m_SendChannelRes2Net->setObjectName("m_SendChannelRes2Net"); m_SendChannelRes2Net->setObjectName("m_SendChannelRes2Net");
connect(m_SendChannelRes2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_SendChannelRes2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendChannelRes2Net->setChecked(DetectState::instance()->m_SendChannelRes2Net == (int)true); m_SendChannelRes2Net->setChecked(DetectState::instance()->m_SendChannelRes2Net == (int)true);
QCheckBox *m_UseRaster = new QCheckBox; QCheckBox *m_UseRaster = new QCheckBox;
m_UseRaster->setText(tr("使用光栅获取厚度")); m_UseRaster->setText(tr("使用光栅获取厚度"));
m_UseRaster->setObjectName("m_UseRaster"); m_UseRaster->setObjectName("m_UseRaster");
connect(m_UseRaster, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_UseRaster, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_UseRaster->setChecked(DetectState::instance()->m_IsUseRaster == 1); m_UseRaster->setChecked(DetectState::instance()->m_IsUseRaster == 1);
QCheckBox *m_SaveD2HCsv = new QCheckBox; QCheckBox *m_SaveD2HCsv = new QCheckBox;
m_SaveD2HCsv->setText(tr("保存数据用于测试")); m_SaveD2HCsv->setText(tr("保存数据用于测试"));
m_SaveD2HCsv->setObjectName("m_SaveD2HCsv"); m_SaveD2HCsv->setObjectName("m_SaveD2HCsv");
connect(m_SaveD2HCsv, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_SaveD2HCsv, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SaveD2HCsv->setChecked(DetectState::instance()->m_SaveD2HCsv == 1); m_SaveD2HCsv->setChecked(DetectState::instance()->m_SaveD2HCsv == 1);
QCheckBox *m_IsUseChannel = new QCheckBox; QCheckBox *m_IsUseChannel = new QCheckBox;
m_IsUseChannel->setText(tr("是否使用通道分配")); m_IsUseChannel->setText(tr("是否使用通道分配"));
m_IsUseChannel->setObjectName("m_IsUseChannel"); m_IsUseChannel->setObjectName("m_IsUseChannel");
connect(m_IsUseChannel, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_IsUseChannel, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_IsUseChannel->setChecked(DetectState::instance()->m_IsUseChannel == 1); m_IsUseChannel->setChecked(DetectState::instance()->m_IsUseChannel == 1);
QCheckBox *m_StartAndDetect = new QCheckBox; QCheckBox *m_StartAndDetect = new QCheckBox;
m_StartAndDetect->setText(tr("是否启动就开始检测")); m_StartAndDetect->setText(tr("是否启动就开始检测"));
m_StartAndDetect->setObjectName("m_StartAndDetect"); m_StartAndDetect->setObjectName("m_StartAndDetect");
connect(m_StartAndDetect, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_StartAndDetect, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_StartAndDetect->setChecked(DetectState::instance()->m_StartAndDetect == 1); m_StartAndDetect->setChecked(DetectState::instance()->m_StartAndDetect == 1);
QCheckBox *m_showThressValue = new QCheckBox; QCheckBox *m_showThressValue = new QCheckBox;
m_showThressValue->setText(tr("是否显示")); m_showThressValue->setText(tr("是否显示"));
m_showThressValue->setObjectName("m_showThressValue"); m_showThressValue->setObjectName("m_showThressValue");
connect(m_showThressValue, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_showThressValue, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_showThressValue->setChecked(DetectState::instance()->m_showThressValue == 1); m_showThressValue->setChecked(DetectState::instance()->m_showThressValue == 1);
QCheckBox *m_showThressList = new QCheckBox; QCheckBox *m_showThressList = new QCheckBox;
m_showThressList->setText(tr("是否显示")); m_showThressList->setText(tr("是否显示"));
m_showThressList->setObjectName("m_showThressList"); m_showThressList->setObjectName("m_showThressList");
connect(m_showThressList, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int))); connect(m_showThressList, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_showThressList->setChecked(DetectState::instance()->m_showThressList == 1); m_showThressList->setChecked(DetectState::instance()->m_showThressList == 1);
QPushButton *m_DebugSave = new QPushButton(tr("保存")); QPushButton *m_DebugSave = new QPushButton(tr("保存"));
m_DebugSave->setObjectName("m_DebugSave"); m_DebugSave->setObjectName("m_DebugSave");
connect(m_DebugSave, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton())); connect(m_DebugSave, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton()));
@ -804,7 +805,7 @@ Q_SLOT void QSystemSettingDlg::onSavePLCPara()
DetectState::instance()->savePLCPara(); DetectState::instance()->savePLCPara();
// QVariant nType = QVariant(WF_PLCPARA); // QVariant nType = QVariant(WF_PLCPARA);
// emit(sgGenalData(nType, WF_PARASET)); // emit(sgGenalData(nType, WF_PARASET));
// emit sgShowMsg(tr("数据已发送并保存")); // emit sgShowMsg(tr("数据已发送并保存"));
} }
} }
@ -828,7 +829,7 @@ void QSystemSettingDlg::writeSettingFile()
Q_SLOT void QSystemSettingDlg::onChangeBG() Q_SLOT void QSystemSettingDlg::onChangeBG()
{ {
QFileDialog fileDialog; QFileDialog fileDialog;
fileDialog.setWindowTitle(tr("请选择您的背景图")); fileDialog.setWindowTitle(tr("请选择您的背景图"));
fileDialog.setNameFilter("Picture(*.bmp *.jpg *.png)"); fileDialog.setNameFilter("Picture(*.bmp *.jpg *.png)");
fileDialog.setFileMode(QFileDialog::ExistingFiles); fileDialog.setFileMode(QFileDialog::ExistingFiles);
if (fileDialog.exec() == QDialog::Accepted) if (fileDialog.exec() == QDialog::Accepted)
@ -857,9 +858,9 @@ Q_SLOT void QSystemSettingDlg::onChangeBG()
//return false; //return false;
} }
//emit sgChangeBG(DstPath); //emit sgChangeBG(DstPath);
QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL); QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
infobox.setButtonText(QMessageBox::Yes, tr("确认")); infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec(); infobox.exec();
} }
} }
@ -931,7 +932,7 @@ Q_SLOT void QSystemSettingDlg::onTreeWidgetButton()
DetectState::instance()->m_CameraTrigeType = 0; DetectState::instance()->m_CameraTrigeType = 0;
} }
DetectState::instance()->saveDeteImage(); DetectState::instance()->saveDeteImage();
//emit sgShowMsg(tr("保存完成")); //emit sgShowMsg(tr("保存完成"));
} }
} }
@ -975,7 +976,7 @@ Q_SLOT void QSystemSettingDlg::onOpenDataPath()
} }
else if ("pbSetSavePath" == strObj) else if ("pbSetSavePath" == strObj)
{ {
QString dir = QFileDialog::getExistingDirectory(NULL, tr("打开文件夹"), QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); QString dir = QFileDialog::getExistingDirectory(NULL, tr("打开文件夹"), QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
if (!dir.isEmpty()) if (!dir.isEmpty())
{ {
if (m_pLbShowPath) if (m_pLbShowPath)

@ -1,4 +1,4 @@
#include "QTimeMgrDlg.h" #include "QTimeMgrDlg.h"
#include <QStandardItemModel> #include <QStandardItemModel>
#include "timemgrctrl.h" #include "timemgrctrl.h"
#include "qaddtimedlg.h" #include "qaddtimedlg.h"
@ -18,7 +18,7 @@ QTimeMgrDlg::QTimeMgrDlg(QWidget *parent)
ui.setupUi(this); ui.setupUi(this);
tablemodel = new QStandardItemModel(); tablemodel = new QStandardItemModel();
QStringList stringList; QStringList stringList;
stringList << tr("班次") << tr("起始时间") << tr("结束时间"); stringList << tr("班次") << tr("起始时间") << tr("结束时间");
tablemodel->setHorizontalHeaderLabels(stringList); tablemodel->setHorizontalHeaderLabels(stringList);
connect(ui.TimeMgr_tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(SlotcellClicked(const QModelIndex &))); connect(ui.TimeMgr_tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(SlotcellClicked(const QModelIndex &)));
connect(ui.TimeMgr_ADD_Button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); connect(ui.TimeMgr_ADD_Button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
@ -49,7 +49,7 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
QString str_name = obj->objectName(); QString str_name = obj->objectName();
if (str_name == "TimeMgr_ADD_Button") { if (str_name == "TimeMgr_ADD_Button") {
QAddTimeDlg dlg(this); QAddTimeDlg dlg(this);
dlg.setWindowTitle(tr("设置参数")); dlg.setWindowTitle(tr("设置参数"));
dlg.setWindowIcon(QIcon(":/image/leaper")); dlg.setWindowIcon(QIcon(":/image/leaper"));
dlg.setFocus(); dlg.setFocus();
dlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); dlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
@ -65,8 +65,8 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
} }
int nIndex = tablemodel->rowCount(); int nIndex = tablemodel->rowCount();
tablemodel->setItem(nIndex, 0, new QStandardItem(m_Timestruct.m_name)); tablemodel->setItem(nIndex, 0, new QStandardItem(m_Timestruct.m_name));
QString strStart = QString("%1 %2").arg(m_Timestruct.time_start == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_startTime.toString("hh:mm")); QString strStart = QString("%1 %2").arg(m_Timestruct.time_start == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_startTime.toString("hh:mm"));
QString strEnd = QString("%1 %2").arg(m_Timestruct.time_end == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_endTime.toString("hh:mm")); QString strEnd = QString("%1 %2").arg(m_Timestruct.time_end == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart)); tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd)); tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
m_Timestruct.m_Index = nIndex; m_Timestruct.m_Index = nIndex;
@ -78,24 +78,24 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
} }
else if (str_name == "TimeMgr_Del_Button") { else if (str_name == "TimeMgr_Del_Button") {
QString str_name = ui.TimeMgr_label->text(); QString str_name = ui.TimeMgr_label->text();
if (str_name.isEmpty() || str_name == tr("未选中")) if (str_name.isEmpty() || str_name == tr("未选中"))
{ {
//QMessageBox::information(NULL, QString("提示"), QString("未选择班次,请选择进行修改。"), QMessageBox::Ok); //QMessageBox::information(NULL, QString("提示"), QString("未选择班次,请选择进行修改。"), QMessageBox::Ok);
QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this); QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
infobox.setButtonText(QMessageBox::Yes, tr("确认")); infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec(); infobox.exec();
return; return;
} }
QString str = tr("您确定要删除 %1 班次?").arg(str_name); QString str = tr("您确定要删除 %1 班次?").arg(str_name);
if (str_name.isEmpty()) if (str_name.isEmpty())
return; return;
QMessageBox infobox(QMessageBox::Information, tr("提示"), str, QMessageBox::Ok | QMessageBox::Cancel, this); QMessageBox infobox(QMessageBox::Information, tr("提示"), str, QMessageBox::Ok | QMessageBox::Cancel, this);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
infobox.setButtonText(QMessageBox::Ok, tr("确认")); infobox.setButtonText(QMessageBox::Ok, tr("确认"));
infobox.setButtonText(QMessageBox::Cancel, tr("取消")); infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
if (infobox.exec() == QMessageBox::Ok) if (infobox.exec() == QMessageBox::Ok)
{ {
if (str_name.isEmpty()) if (str_name.isEmpty())
@ -116,12 +116,12 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
} }
else if (str_name == "TimeMgr_Mod_Button") { else if (str_name == "TimeMgr_Mod_Button") {
QString str_name = ui.TimeMgr_label->text(); QString str_name = ui.TimeMgr_label->text();
if (str_name.isEmpty() || str_name == tr("未选中")) if (str_name.isEmpty() || str_name == tr("未选中"))
{ {
QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this); QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this);
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
infobox.setButtonText(QMessageBox::Yes, tr("确认")); infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec(); infobox.exec();
return; return;
@ -145,8 +145,8 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
{ {
TimeStruct tiItem = vec.at(n); TimeStruct tiItem = vec.at(n);
tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name)); tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name));
QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm")); QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm"));
QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm")); QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart)); tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd)); tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
nIndex++; nIndex++;
@ -178,15 +178,15 @@ void QTimeMgrDlg::showEvent(QShowEvent *)
ui.TimeMgr_tableView->setColumnWidth(0, 100); ui.TimeMgr_tableView->setColumnWidth(0, 100);
ui.TimeMgr_tableView->setColumnWidth(1, 100); ui.TimeMgr_tableView->setColumnWidth(1, 100);
ui.TimeMgr_tableView->setColumnWidth(2, 100); ui.TimeMgr_tableView->setColumnWidth(2, 100);
//默认显示行头,如果你觉得不美观的话,我们可以将隐藏 //默认显示行头,如果你觉得不美观的话,我们可以将隐藏
//m_tableView->verticalHeader()->hide(); //m_tableView->verticalHeader()->hide();
ui.TimeMgr_tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui.TimeMgr_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.TimeMgr_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui.TimeMgr_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//tableView->resizeColumnsToContents(); //tableView->resizeColumnsToContents();
//如果你用在QTableView中使用右键菜单需启用该属性 //如果你用在QTableView中使用右键菜单需启用该属性
//tableView->setContextMenuPolicy(Qt::CustomContextMenu); //tableView->setContextMenuPolicy(Qt::CustomContextMenu);
ui.TimeMgr_tableView->setWordWrap(false); ui.TimeMgr_tableView->setWordWrap(false);
//tableView->setShowGrid(false);//显示表格线 //tableView->setShowGrid(false);//显示表格线
ui.TimeMgr_tableView->setAlternatingRowColors(true); ui.TimeMgr_tableView->setAlternatingRowColors(true);
int nIndex = 0; int nIndex = 0;
if (m_MapTime.size() <= 0) if (m_MapTime.size() <= 0)
@ -198,8 +198,8 @@ void QTimeMgrDlg::showEvent(QShowEvent *)
{ {
TimeStruct tiItem = vec.at(n); TimeStruct tiItem = vec.at(n);
tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name)); tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name));
QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm")); QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm"));
QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm")); QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart)); tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd)); tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
nIndex++; nIndex++;

@ -1,4 +1,4 @@
#include "lpGlobalData.h" #include "lpGlobalData.h"
lpGlobalData::lpGlobalData(QObject *parent) lpGlobalData::lpGlobalData(QObject *parent)
: QObject(parent) : QObject(parent)

@ -1,4 +1,4 @@
#include "lpMain.h" #include "lpMain.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
IMAINWIDGET_API IMainWidget* MainWidget_Create() IMAINWIDGET_API IMainWidget* MainWidget_Create()

@ -1,4 +1,4 @@
#include "lpMainWin.h" #include "lpMainWin.h"
#include "quserinfo_global.h" #include "quserinfo_global.h"
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
@ -25,7 +25,7 @@ lpMainWin::lpMainWin(QWidget *parent)
QMySplashScreen m_screen; QMySplashScreen m_screen;
m_screen.show(); m_screen.show();
qRegisterMetaType<TimeStruct>("TimeStruct"); qRegisterMetaType<TimeStruct>("TimeStruct");
m_screen.ShowMsg(tr("加载必要模块.....")); m_screen.ShowMsg(tr("加载必要模块....."));
onInitCoreCtrl(); onInitCoreCtrl();
ui.setupUi(this); ui.setupUi(this);
onInitAbout(); onInitAbout();
@ -69,23 +69,23 @@ lpMainWin::lpMainWin(QWidget *parent)
QToolButton* pbutton = new QToolButton(this); QToolButton* pbutton = new QToolButton(this);
pbutton->setMenu(pToolMenu); pbutton->setMenu(pToolMenu);
pbutton->setIcon(QIcon(":/ToolBarPic/ToolButon")); pbutton->setIcon(QIcon(":/ToolBarPic/ToolButon"));
pbutton->setText(tr("工具")); pbutton->setText(tr("工具"));
pbutton->setToolTip(tr("工具")); pbutton->setToolTip(tr("工具"));
pbutton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); pbutton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pbutton->setPopupMode(QToolButton::InstantPopup); pbutton->setPopupMode(QToolButton::InstantPopup);
ui.mainToolBar->addWidget(pbutton); ui.mainToolBar->addWidget(pbutton);
ui.mainToolBar->addAction(ui.action_about); ui.mainToolBar->addAction(ui.action_about);
} }
{//加载语言设置 {//加载语言设置
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat); QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLangeage = languageSetting.value("language", "Chinese").toString(); QString strLangeage = languageSetting.value("language", "Chinese").toString();
SetLanguage(strLangeage); SetLanguage(strLangeage);
} }
{ {
m_pLbCurrentTime = new QLabel(tr("系统时间")); m_pLbCurrentTime = new QLabel(tr("系统时间"));
m_pLbBanci = new QLabel(tr("班次信息")); m_pLbBanci = new QLabel(tr("班次信息"));
m_pLbDetectState = new QLabel(tr("检测状态")); m_pLbDetectState = new QLabel(tr("检测状态"));
m_pLbUser = new QLabel(tr("用户:")); m_pLbUser = new QLabel(tr("用户:"));
QFont m_font; QFont m_font;
m_font.setBold(true); m_font.setBold(true);
@ -104,7 +104,7 @@ lpMainWin::lpMainWin(QWidget *parent)
m_pLbDetectState->setFont(m_font); m_pLbDetectState->setFont(m_font);
m_pLbDetectState->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); m_pLbDetectState->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
//m_pLbOnLine = new class QLabel("模式:"); //m_pLbOnLine = new class QLabel("模式:");
//m_pLbOnLine->setMinimumWidth(c_nWidth); //m_pLbOnLine->setMinimumWidth(c_nWidth);
m_pLbUser->setFont(m_font); m_pLbUser->setFont(m_font);
@ -115,9 +115,9 @@ lpMainWin::lpMainWin(QWidget *parent)
ui.statusBar->addWidget(m_pLbBanci); ui.statusBar->addWidget(m_pLbBanci);
ui.statusBar->addPermanentWidget(m_pLbCurrentTime); ui.statusBar->addPermanentWidget(m_pLbCurrentTime);
} }
//加载用户管理模块 //加载用户管理模块
loadUserModel(); loadUserModel();
//初始化模型管理模块 //初始化模型管理模块
{ {
m_pCtrl = new WheelCtrl(QCoreApplication::applicationDirPath(), &m_screen); m_pCtrl = new WheelCtrl(QCoreApplication::applicationDirPath(), &m_screen);
pWorkCtrl = new QWorkMgrCtlr(m_pCtrl); pWorkCtrl = new QWorkMgrCtlr(m_pCtrl);
@ -126,26 +126,26 @@ lpMainWin::lpMainWin(QWidget *parent)
m_pworkUI->InitUI(); m_pworkUI->InitUI();
connect(m_pworkUI, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect())); connect(m_pworkUI, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect()));
m_pModelMgrDlg = new QModelMgrDlg(m_pCtrl);//模板管理 m_pModelMgrDlg = new QModelMgrDlg(m_pCtrl);//模板管理
m_pDebugDlg = new QDebugDlg();//调试界面 m_pDebugDlg = new QDebugDlg();//调试界面
connect(m_pDebugDlg, SIGNAL(sgTriggerCam()), this, SLOT(onTriggerCam())); connect(m_pDebugDlg, SIGNAL(sgTriggerCam()), this, SLOT(onTriggerCam()));
m_pDebugDlg->onSetCtrl(m_pCtrl); m_pDebugDlg->onSetCtrl(m_pCtrl);
m_pTimerMgrDlg = new QTimeMgrDlg();//班次管理 m_pTimerMgrDlg = new QTimeMgrDlg();//班次管理
m_pTimerMgrDlg->onSetCtrlPtr(m_pCtrl); m_pTimerMgrDlg->onSetCtrlPtr(m_pCtrl);
m_pSystemSettingDlg = new QSystemSettingDlg();//系统设置 m_pSystemSettingDlg = new QSystemSettingDlg();//系统设置
m_CamSettingDlg = new QCamSettingDlg(); m_CamSettingDlg = new QCamSettingDlg();
m_CamSettingDlg->setCoreCtrlPtr(m_pCoreCtrl); m_CamSettingDlg->setCoreCtrlPtr(m_pCoreCtrl);
m_pixMapList = new QPixmapListBar(ui.tp_main_tabWidget); m_pixMapList = new QPixmapListBar(ui.tp_main_tabWidget);
ui.tp_main_tabWidget->insertTab(0, m_pixMapList, tr("历史")); ui.tp_main_tabWidget->insertTab(0, m_pixMapList, tr("历史"));
ui.tp_main_tabWidget->setCurrentIndex(0); ui.tp_main_tabWidget->setCurrentIndex(0);
} }
{ {
/*发送模板库线程*/ /*发送模板库线程*/
SendModelLibTask = new QMyThread(); SendModelLibTask = new QMyThread();
SendModelLibTask->setUser(true); SendModelLibTask->setUser(true);
TaskFunc KuTaskFunc = std::bind(&lpMainWin::SendModelKuTskFun,this); TaskFunc KuTaskFunc = std::bind(&lpMainWin::SendModelKuTskFun,this);
@ -155,16 +155,16 @@ lpMainWin::lpMainWin(QWidget *parent)
TaskFunc TickFunc = std::bind(&lpMainWin::SendTickTskFun, this); TaskFunc TickFunc = std::bind(&lpMainWin::SendTickTskFun, this);
SendTiskTsk->loadfunc(TickFunc); SendTiskTsk->loadfunc(TickFunc);
m_screen.ShowMsg(tr("系统初始化完成...")); m_screen.ShowMsg(tr("系统初始化完成..."));
} }
{ {
onSetModel(); onSetModel();
/*网络通信加载*/ /*网络通信加载*/
m_pNet = ((WheelCtrl*)m_pCtrl)->getNet(); m_pNet = ((WheelCtrl*)m_pCtrl)->getNet();
connect(m_pNet, SIGNAL(sgShow2UI(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));//net connect(m_pNet, SIGNAL(sgShow2UI(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));//net
connect(m_pNet, SIGNAL(sgClientConnect(QString, bool)), this, SLOT(onClientConnect(QString, bool)));//net connect(m_pNet, SIGNAL(sgClientConnect(QString, bool)), this, SLOT(onClientConnect(QString, bool)));//net
//connect(m_pNet, SIGNAL(sgRecv(const QString &)), this, SLOT(onTcpRecv(const QString &)));// net显示 //connect(m_pNet, SIGNAL(sgRecv(const QString &)), this, SLOT(onTcpRecv(const QString &)));// net显示
connect(m_pNet, SIGNAL(sgThickness(double)), this, SLOT(onThickness(double)));//xy height connect(m_pNet, SIGNAL(sgThickness(double)), this, SLOT(onThickness(double)));//xy height
connect(m_pNet, SIGNAL(sgRecvDetectState(int, int)), this, SLOT(onDetectStateRecv(int, int)));//xy check connect(m_pNet, SIGNAL(sgRecvDetectState(int, int)), this, SLOT(onDetectStateRecv(int, int)));//xy check
connect(m_pNet, SIGNAL(sgClearRev(bool)), this, SLOT(onClearLibRev(bool)));//xy clearlib connect(m_pNet, SIGNAL(sgClearRev(bool)), this, SLOT(onClearLibRev(bool)));//xy clearlib
@ -178,21 +178,21 @@ lpMainWin::lpMainWin(QWidget *parent)
connect(m_pNet, SIGNAL(sgShutDownComputer()), this, SLOT(onShutDownComputer())); connect(m_pNet, SIGNAL(sgShutDownComputer()), this, SLOT(onShutDownComputer()));
connect(m_pNet, SIGNAL(sgLibRev(bool)), SendModelLibTask, SLOT(WaitSingleIn(bool)));//xy lib connect(m_pNet, SIGNAL(sgLibRev(bool)), SendModelLibTask, SLOT(WaitSingleIn(bool)));//xy lib
// connect(m_pNet, SIGNAL(sgChangeOnlineState(int)), m_pUi, SLOT(onSwitchOnlineModel(int)));//强制在线 离线 // connect(m_pNet, SIGNAL(sgChangeOnlineState(int)), m_pUi, SLOT(onSwitchOnlineModel(int)));//强制在线 离线
QTimer::singleShot(500, m_pNet, SLOT(onOpenServer()));//延迟2s打开网络TCP服务 QTimer::singleShot(500, m_pNet, SLOT(onOpenServer()));//延迟2s打开网络TCP服务
} }
{ {
connect(&m_PulseTimer, SIGNAL(timeout()), this, SLOT(onPulseTimer()));//心跳包 connect(&m_PulseTimer, SIGNAL(timeout()), this, SLOT(onPulseTimer()));//心跳包
connect(&m_wfPulseTimer, SIGNAL(timeout()), this, SLOT(onwfPulseTimer()));//心跳包 connect(&m_wfPulseTimer, SIGNAL(timeout()), this, SLOT(onwfPulseTimer()));//心跳包
connect(&m_ThicknessTimer, SIGNAL(timeout()), this, SLOT(onThicknessTimer()));// 厚度查询 connect(&m_ThicknessTimer, SIGNAL(timeout()), this, SLOT(onThicknessTimer()));// 厚度查询
connect(&m_ReadLibTimer, SIGNAL(timeout()), this, SLOT(onSendReadOnlineLib())); connect(&m_ReadLibTimer, SIGNAL(timeout()), this, SLOT(onSendReadOnlineLib()));
connect(this, SIGNAL(sgTickTsk()), this, SLOT(onPulseTimer())); connect(this, SIGNAL(sgTickTsk()), this, SLOT(onPulseTimer()));
connect(this, SIGNAL(sgShowMsg(QString, bool)), this, SLOT(onTcpConnet(QString, bool))); connect(this, SIGNAL(sgShowMsg(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));
connect(this, SIGNAL(sgTaskSendModels(int, QString, double, double)), this, SLOT(onTaskSendModels(int, QString, double, double)));//用于发送莫板库 connect(this, SIGNAL(sgTaskSendModels(int, QString, double, double)), this, SLOT(onTaskSendModels(int, QString, double, double)));//用于发送莫板库
connect(this, SIGNAL(sgTskSendDetectState(int, QString, int)), this, SLOT(onTaskSendDetectState(int, QString, int)));//离线检测发送 用于发送检测状态 connect(this, SIGNAL(sgTskSendDetectState(int, QString, int)), this, SLOT(onTaskSendDetectState(int, QString, int)));//离线检测发送 用于发送检测状态
connect(this, SIGNAL(sgTskSendCheck(int, int, QString)), this, SLOT(onTaskCheck(int, int, QString)));//在线检测状态查询 用于查询线程 connect(this, SIGNAL(sgTskSendCheck(int, int, QString)), this, SLOT(onTaskCheck(int, int, QString)));//在线检测状态查询 用于查询线程
// connect(this, SIGNAL(sgCheckEnd()), this, SLOT(onCheckEnd())); // connect(this, SIGNAL(sgCheckEnd()), this, SLOT(onCheckEnd()));
connect(this, SIGNAL(sgShowImgState(QString)), this, SLOT(onShowImgState(QString))); connect(this, SIGNAL(sgShowImgState(QString)), this, SLOT(onShowImgState(QString)));
connect(this, SIGNAL(sgGetImg()), this, SLOT(onGetImg())); connect(this, SIGNAL(sgGetImg()), this, SLOT(onGetImg()));
@ -202,14 +202,14 @@ lpMainWin::lpMainWin(QWidget *parent)
connect(this, SIGNAL(sgShowChannelRes(QString)), this, SLOT(onShowChannel(QString))); connect(this, SIGNAL(sgShowChannelRes(QString)), this, SLOT(onShowChannel(QString)));
} }
{ {
/*启动之后就一直发送心跳包和厚度查询*/ /*启动之后就一直发送心跳包和厚度查询*/
if (DetectState::instance()->m_AutoSendTick2Net) if (DetectState::instance()->m_AutoSendTick2Net)
{ {
SendTiskTsk->setSleepTime(1000); SendTiskTsk->setSleepTime(1000);
SendTiskTsk->start(); SendTiskTsk->start();
} }
if (DetectState::instance()->m_StartAndDetect == 1)//m_sysType 表示万丰科技的 if (DetectState::instance()->m_StartAndDetect == 1)//m_sysType 表示万丰科技的
{ {
// m_timerDetect.setSingleShot(true); // m_timerDetect.setSingleShot(true);
// connect(&m_timerDetect, SIGNAL(timeout()), m_pUi, SLOT(onStartDetect())); // connect(&m_timerDetect, SIGNAL(timeout()), m_pUi, SLOT(onStartDetect()));
@ -417,8 +417,8 @@ void lpMainWin::SearchQmFile(const QString & strDir)
return; return;
} }
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
dir.setSorting(QDir::DirsFirst); // 文件夹优先 dir.setSorting(QDir::DirsFirst); // 文件夹优先
// 转换成一个List // 转换成一个List
QFileInfoList list = dir.entryInfoList(); QFileInfoList list = dir.entryInfoList();
if (list.size() < 1) if (list.size() < 1)
{ {
@ -429,7 +429,7 @@ void lpMainWin::SearchQmFile(const QString & strDir)
{ {
QFileInfo fileInfo = list.at(i); QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName(); QString tt = fileInfo.fileName();
// 如果是文件夹 // 如果是文件夹
bool bisDir = fileInfo.isDir(); bool bisDir = fileInfo.isDir();
if (bisDir) if (bisDir)
{ {
@ -451,7 +451,7 @@ void lpMainWin::SetTranslator(const QString strPath)
return; return;
} }
QTranslator *pTrans = new QTranslator; QTranslator *pTrans = new QTranslator;
if (pTrans->load(strPath)) // 如果加载成功 if (pTrans->load(strPath)) // 如果加载成功
{ {
qApp->installTranslator(pTrans); qApp->installTranslator(pTrans);
m_VecTranPtr.append(pTrans); m_VecTranPtr.append(pTrans);
@ -487,7 +487,7 @@ void lpMainWin::SetLanguage(QString strLangage)
SearchQmFile(transDir); SearchQmFile(transDir);
} }
} }
/*主线程接收图像*/ /*主线程接收图像*/
void lpMainWin::INewCameraImage(const QString& camKey, QImage img) void lpMainWin::INewCameraImage(const QString& camKey, QImage img)
{ {
if (m_ImgViewer) if (m_ImgViewer)
@ -507,13 +507,13 @@ void lpMainWin::INewCameraImage(const QString& camKey, QImage img)
} }
} }
/*多线程发送算法结果*/ /*多线程发送算法结果*/
void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap) void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
{ {
emit(sgShowImgState(tr("显示识别结果"))); emit(sgShowImgState(tr("显示识别结果")));
if (vMap.contains("error")) if (vMap.contains("error"))
{ {
emit(sgShowMsgdlg(tr("相机图像和背景图不一样,请更换检测背景!"))); emit(sgShowMsgdlg(tr("相机图像和背景图不一样,请更换检测背景!")));
return; return;
} }
Result2Ui *pResult = (Result2Ui*)vMap.value("result").toLongLong(); Result2Ui *pResult = (Result2Ui*)vMap.value("result").toLongLong();
@ -525,7 +525,7 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
static int ErrorNum = 0; static int ErrorNum = 0;
if (m_pNet) { if (m_pNet) {
if (pResult->m_strModel == "NG") { if (pResult->m_strModel == "NG") {
//m_pNet->sendLight(0, 1, 1000, 10);//红灯 //m_pNet->sendLight(0, 1, 1000, 10);//红灯
SendResultBee(LIGHT_REDBEE, 1); SendResultBee(LIGHT_REDBEE, 1);
SendResultBee(LIGHT_BEE, 1); SendResultBee(LIGHT_BEE, 1);
@ -537,9 +537,9 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
ErrorNum = 0; ErrorNum = 0;
} }
if (ErrorNum >= 3) { if (ErrorNum >= 3) {
QString str = tr("警告!!!连续出现%1个未识别型号").arg(ErrorNum); QString str = tr("警告!!!连续出现%1个未识别型号").arg(ErrorNum);
if (DetectState::instance()->IsDetect == false) if (DetectState::instance()->IsDetect == false)
str += tr(",未开启检测功能造成的"); str += tr(",未开启检测功能造成的");
m_pCtrl->addLog(str, emTypeWaring); m_pCtrl->addLog(str, emTypeWaring);
//m_pNet->sendLight(0, 1, 2000, 100); //m_pNet->sendLight(0, 1, 2000, 100);
//m_pNet->sendLight(3, 1, 3000, 100); //m_pNet->sendLight(3, 1, 3000, 100);
@ -548,11 +548,11 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
} }
} }
if (DetectState::instance()->m_SendDetectStr2Net) if (DetectState::instance()->m_SendDetectStr2Net)
SendResultStr2PLC(pResult);//发送检测结果字符到PLC SendResultStr2PLC(pResult);//发送检测结果字符到PLC
if (DetectState::instance()->m_SendChannelRes2COM) if (DetectState::instance()->m_SendChannelRes2COM)
SendResultChannelCOM(pResult);//发送检测结果通道到串口 SendResultChannelCOM(pResult);//发送检测结果通道到串口
if (DetectState::instance()->m_SendChannelRes2Net) if (DetectState::instance()->m_SendChannelRes2Net)
SendResultChannel2PLC(pResult);//发送检测结果通道到PLC SendResultChannel2PLC(pResult);//发送检测结果通道到PLC
m_pCtrl->saveResult(pResult); m_pCtrl->saveResult(pResult);
saveImage(pResult); saveImage(pResult);
@ -569,13 +569,13 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
// } // }
} }
/*多线程获取算法参数*/ /*多线程获取算法参数*/
QVariant lpMainWin::IGetVariantById(int id) QVariant lpMainWin::IGetVariantById(int id)
{ {
m_nDiffTrigNum--;//进入到这里 表示获取到了图片 m_nDiffTrigNum--;//进入到这里 表示获取到了图片
qWarning() << "Alg get An Image:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")"; qWarning() << "Alg get An Image:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
emit(sgShowImgState(tr("获得图像,正在计算中..."))); emit(sgShowImgState(tr("获得图像,正在计算中...")));
emit(sgGetImg()); emit(sgGetImg());
qDebug() << "get one Pic ,id=" << id; qDebug() << "get one Pic ,id=" << id;
if (DetectState::instance()->m_showThressList == 1) { if (DetectState::instance()->m_showThressList == 1) {
@ -621,12 +621,12 @@ Q_SLOT void lpMainWin::onLogInOut(QString strName, int level, int state)
lpGlobalData::instance()->m_level = level; lpGlobalData::instance()->m_level = level;
if (state == 0) { if (state == 0) {
m_pCtrl->setUser(strName, level); m_pCtrl->setUser(strName, level);
ui.action_Login->setText(tr("注 销")); ui.action_Login->setText(tr("注 销"));
} }
else else
{ {
m_pCtrl->setUser(strName, level); m_pCtrl->setUser(strName, level);
ui.action_Login->setText(tr("登 录")); ui.action_Login->setText(tr("登 录"));
} }
onUpdateByLevel(level); onUpdateByLevel(level);
} }
@ -635,14 +635,14 @@ Q_SLOT void lpMainWin::onActionClicked()
{ {
QString strObj = sender()->objectName(); QString strObj = sender()->objectName();
if ("action_userManager" == strObj) { if ("action_userManager" == strObj) {
/*用户管理*/ /*用户管理*/
if (m_pUserCtrl) if (m_pUserCtrl)
{ {
m_pUserCtrl->ShowUserMgrDlg(this); m_pUserCtrl->ShowUserMgrDlg(this);
} }
} }
else if ("action_Login" == strObj) { else if ("action_Login" == strObj) {
/*用户登陆*/ /*用户登陆*/
if (m_pUserCtrl) if (m_pUserCtrl)
{ {
m_pUserCtrl->CheckLogin(this); m_pUserCtrl->CheckLogin(this);
@ -650,7 +650,7 @@ Q_SLOT void lpMainWin::onActionClicked()
} }
else if ("action_about" == strObj) { else if ("action_about" == strObj) {
m_aboutDlg.setParent(this); m_aboutDlg.setParent(this);
m_aboutDlg.setWindowTitle(tr("关于")); m_aboutDlg.setWindowTitle(tr("关于"));
m_aboutDlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_aboutDlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_aboutDlg.setWindowIcon(QIcon(":/resource/logo-8.png")); m_aboutDlg.setWindowIcon(QIcon(":/resource/logo-8.png"));
m_aboutDlg.setWindowModality(Qt::ApplicationModal); m_aboutDlg.setWindowModality(Qt::ApplicationModal);
@ -667,7 +667,7 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_setting_ban" == strObj) { else if ("action_setting_ban" == strObj) {
if (m_pTimerMgrDlg) { if (m_pTimerMgrDlg) {
m_pTimerMgrDlg->setParent(this); m_pTimerMgrDlg->setParent(this);
m_pTimerMgrDlg->setWindowTitle(tr("班次管理")); m_pTimerMgrDlg->setWindowTitle(tr("班次管理"));
m_pTimerMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_pTimerMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pTimerMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png")); m_pTimerMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pTimerMgrDlg->setWindowModality(Qt::ApplicationModal); m_pTimerMgrDlg->setWindowModality(Qt::ApplicationModal);
@ -678,7 +678,7 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_debug" == strObj) { else if ("action_debug" == strObj) {
if (m_pDebugDlg) { if (m_pDebugDlg) {
m_pDebugDlg->setParent(this); m_pDebugDlg->setParent(this);
m_pDebugDlg->setWindowTitle(tr("调试工具")); m_pDebugDlg->setWindowTitle(tr("调试工具"));
m_pDebugDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_pDebugDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pDebugDlg->setWindowIcon(QIcon(":/resource/logo-8.png")); m_pDebugDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pDebugDlg->setWindowModality(Qt::ApplicationModal); m_pDebugDlg->setWindowModality(Qt::ApplicationModal);
@ -686,7 +686,7 @@ Q_SLOT void lpMainWin::onActionClicked()
m_pDebugDlg->show(); m_pDebugDlg->show();
} }
} }
else if ("action_connect_mode" == strObj) {//检测模板勾选 else if ("action_connect_mode" == strObj) {//检测模板勾选
if (m_pworkUI) if (m_pworkUI)
{ {
m_pworkUI->setParent(this); m_pworkUI->setParent(this);
@ -700,11 +700,11 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_checkdata" == strObj) { else if ("action_checkdata" == strObj) {
} }
else if ("action_modelmgr" == strObj) {//模板管理 else if ("action_modelmgr" == strObj) {//模板管理
if (m_pModelMgrDlg) if (m_pModelMgrDlg)
{ {
m_pModelMgrDlg->setParent(this); m_pModelMgrDlg->setParent(this);
m_pModelMgrDlg->setWindowTitle(tr("模板管理")); m_pModelMgrDlg->setWindowTitle(tr("模板管理"));
m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pModelMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png")); m_pModelMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pModelMgrDlg->setWindowModality(Qt::ApplicationModal); m_pModelMgrDlg->setWindowModality(Qt::ApplicationModal);
@ -717,7 +717,7 @@ Q_SLOT void lpMainWin::onActionClicked()
{ {
m_pSystemSettingDlg->setParent(this); m_pSystemSettingDlg->setParent(this);
m_pSystemSettingDlg->onShowWidget(lpGlobalData::instance()->m_level); m_pSystemSettingDlg->onShowWidget(lpGlobalData::instance()->m_level);
m_pSystemSettingDlg->setWindowTitle(tr("系统参数设置")); m_pSystemSettingDlg->setWindowTitle(tr("系统参数设置"));
m_pSystemSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_pSystemSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pSystemSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png")); m_pSystemSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pSystemSettingDlg->setWindowModality(Qt::ApplicationModal); m_pSystemSettingDlg->setWindowModality(Qt::ApplicationModal);
@ -730,7 +730,7 @@ Q_SLOT void lpMainWin::onActionClicked()
{ {
m_CamSettingDlg->setParent(this); m_CamSettingDlg->setParent(this);
//m_CamSettingDlg->onShowWidget(lpGlobalData::instance()->m_level); //m_CamSettingDlg->onShowWidget(lpGlobalData::instance()->m_level);
m_CamSettingDlg->setWindowTitle(tr("相机配置")); m_CamSettingDlg->setWindowTitle(tr("相机配置"));
m_CamSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); m_CamSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_CamSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png")); m_CamSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_CamSettingDlg->setWindowModality(Qt::ApplicationModal); m_CamSettingDlg->setWindowModality(Qt::ApplicationModal);
@ -743,13 +743,13 @@ Q_SLOT void lpMainWin::onActionClicked()
Q_SLOT void lpMainWin::onButtonClicked() Q_SLOT void lpMainWin::onButtonClicked()
{ {
QString strObj = sender()->objectName(); QString strObj = sender()->objectName();
if ("btn_start_detect" == strObj)//开始 if ("btn_start_detect" == strObj)//开始
{ {
//开始检测按钮 //开始检测按钮
if (DetectState::instance()->IsDetect == false) { if (DetectState::instance()->IsDetect == false) {
ui.btn_start_detect->setText(tr("停止检测")); ui.btn_start_detect->setText(tr("停止检测"));
m_pCtrl->onStart(); m_pCtrl->onStart();
QString str = tr("按下了开始检测按钮,检测功能开启"); QString str = tr("按下了开始检测按钮,检测功能开启");
m_pCtrl->addLog(str, emTypeRunState); m_pCtrl->addLog(str, emTypeRunState);
//QTimer::singleShot(3000, [&](){m_pState->bLockDetect = true; }); //QTimer::singleShot(3000, [&](){m_pState->bLockDetect = true; });
@ -757,23 +757,23 @@ Q_SLOT void lpMainWin::onButtonClicked()
} }
else { else {
m_pCtrl->onFinish(); m_pCtrl->onFinish();
ui.btn_start_detect->setText(tr("开始检测")); ui.btn_start_detect->setText(tr("开始检测"));
QString str = tr("按下了停止检测按钮,检测功能关闭"); QString str = tr("按下了停止检测按钮,检测功能关闭");
m_pCtrl->addLog(str, emTypeRunState); m_pCtrl->addLog(str, emTypeRunState);
DetectState::instance()->bLockDetect = false; DetectState::instance()->bLockDetect = false;
} }
DetectState::instance()->IsDetect = !DetectState::instance()->IsDetect; DetectState::instance()->IsDetect = !DetectState::instance()->IsDetect;
} }
else if ("btn_clear_data" == strObj) {//交班清零 else if ("btn_clear_data" == strObj) {//交班清零
QMessageBox infobox(QMessageBox::Warning, tr("提示"), tr("将清空所有数据"), QMessageBox::Yes | QMessageBox::Cancel, this); QMessageBox infobox(QMessageBox::Warning, tr("提示"), tr("将清空所有数据"), QMessageBox::Yes | QMessageBox::Cancel, this);
infobox.setButtonText(QMessageBox::Yes, tr("确定")); infobox.setButtonText(QMessageBox::Yes, tr("确定"));
infobox.setButtonText(QMessageBox::Cancel, tr("取消")); infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
infobox.setWindowIcon(QIcon(":/image/leaper")); infobox.setWindowIcon(QIcon(":/image/leaper"));
if (QMessageBox::Cancel != infobox.exec()) { if (QMessageBox::Cancel != infobox.exec()) {
m_pCtrl->onClear(); m_pCtrl->onClear();
ui.main_lb_res_ok_num->setText(QString::number(0)); ui.main_lb_res_ok_num->setText(QString::number(0));
ui.main_lb_res_ng_num->setText(QString::number(0)); ui.main_lb_res_ng_num->setText(QString::number(0));
QString str = m_pCtrl->getUserName() + ":" + tr("按下了清零按钮,数据全部清零"); QString str = m_pCtrl->getUserName() + ":" + tr("按下了清零按钮,数据全部清零");
m_pCtrl->addLog(str, emTypeUseState); m_pCtrl->addLog(str, emTypeUseState);
} }
} }
@ -782,8 +782,8 @@ Q_SLOT void lpMainWin::onButtonClicked()
void lpMainWin::timerEvent(QTimerEvent *event) void lpMainWin::timerEvent(QTimerEvent *event)
{ {
if (event->timerId() == m_timerID) { if (event->timerId() == m_timerID) {
QString str = tr("系统时间: "); QString str = tr("系统时间: ");
QString strDetectState = tr("检测状态:") + (DetectState::instance()->IsDetect == true ? tr("检测中...") : tr("未检测...")); QString strDetectState = tr("检测状态:") + (DetectState::instance()->IsDetect == true ? tr("检测中...") : tr("未检测..."));
// if (strLanguage != "Chinese") // if (strLanguage != "Chinese")
// { // {
// str = "Time:"; // str = "Time:";
@ -813,7 +813,7 @@ void lpMainWin::timerEvent(QTimerEvent *event)
if (m_pCtrl) if (m_pCtrl)
show_label = m_pCtrl->getCurrentBan(); show_label = m_pCtrl->getCurrentBan();
QString strMsg = tr("班次信息:") + (show_label.isEmpty() == true ? tr("该时间段未设置班次") : show_label); QString strMsg = tr("班次信息:") + (show_label.isEmpty() == true ? tr("该时间段未设置班次") : show_label);
// if (strLanguage != "Chinese") // if (strLanguage != "Chinese")
// { // {
// strMsg = tr("Classes:") // strMsg = tr("Classes:")
@ -827,7 +827,7 @@ void lpMainWin::timerEvent(QTimerEvent *event)
// if (strLanguage != "Chinese") // if (strLanguage != "Chinese")
// m_pLbUser->setText(tr("User:") + show_label); // m_pLbUser->setText(tr("User:") + show_label);
// else // else
m_pLbUser->setText(tr("当前用户:") + show_label); m_pLbUser->setText(tr("当前用户:") + show_label);
m_pLbUser->setStyleSheet("font: 14px;"); m_pLbUser->setStyleSheet("font: 14px;");
} }
} }
@ -840,8 +840,8 @@ void lpMainWin::closeEvent(QCloseEvent *event)
void lpMainWin::SendModelKuTskFun() void lpMainWin::SendModelKuTskFun()
{ {
/* /*
线 线
PLC PLC
*/ */
DetectState::instance()->m_ThreadWaitTime = 100; DetectState::instance()->m_ThreadWaitTime = 100;
const int c_nErrorTime = 3; const int c_nErrorTime = 3;
@ -877,13 +877,13 @@ void lpMainWin::SendModelKuTskFun()
} while (nIndex < lst.size()); } while (nIndex < lst.size());
} }
emit(sgShowMsgdlg(tr("模板库发送完成"))); emit(sgShowMsgdlg(tr("模板库发送完成")));
} }
void lpMainWin::SendTickTskFun() void lpMainWin::SendTickTskFun()
{ {
//心跳包发送 //心跳包发送
if (m_pNet) if (m_pNet)
{ {
m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline); m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline);
@ -894,8 +894,8 @@ void lpMainWin::SendTickTskFun()
void lpMainWin::onSetModel() void lpMainWin::onSetModel()
{ {
/* /*
使 使
*/ */
forDefectList = pWorkCtrl->getDefectList(); forDefectList = pWorkCtrl->getDefectList();
if (m_pTableCheck) { if (m_pTableCheck) {
@ -904,7 +904,7 @@ void lpMainWin::onSetModel()
strList.append("NG"); strList.append("NG");
m_pTableCheck->setModelList(strList); m_pTableCheck->setModelList(strList);
} }
QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1); QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str); ui.main_showWorkLabel->setText(str);
// IWheelUi *pMainWidget = m_pUi->getItemWidget(WHEEL_UI_MAINWINDOW); // IWheelUi *pMainWidget = m_pUi->getItemWidget(WHEEL_UI_MAINWINDOW);
@ -929,7 +929,7 @@ Q_SLOT void lpMainWin::onUpdateDefect() {
strList.append("NG"); strList.append("NG");
m_pTableCheck->setModelList(strList); m_pTableCheck->setModelList(strList);
} }
QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1); QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str); ui.main_showWorkLabel->setText(str);
} }
@ -961,7 +961,7 @@ Q_SLOT void lpMainWin::onTcpConnet(QString str, bool bConnect)
Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect) Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect)
{ {
/*判断连接的机器IP地址是不是本地设置好的IP并检测他的连接状态如果是 默认将发送模板库给他*/ /*判断连接的机器IP地址是不是本地设置好的IP并检测他的连接状态如果是 默认将发送模板库给他*/
QString m_addr = NetProtocol::genAddressPort(m_pNet->getIp(emNetClient), m_pNet->getPort(emNetClient)); QString m_addr = NetProtocol::genAddressPort(m_pNet->getIp(emNetClient), m_pNet->getPort(emNetClient));
if (m_addr == addr && bConnect) if (m_addr == addr && bConnect)
{ {
@ -969,16 +969,16 @@ Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect)
} }
if (bConnect == true && 1 == DetectState::instance()->IsOnline) { if (bConnect == true && 1 == DetectState::instance()->IsOnline) {
//m_pUi->onSwitchOnlineModel(m_pState->IsOnline);//在线模式 离线模式切换 //m_pUi->onSwitchOnlineModel(m_pState->IsOnline);//在线模式 离线模式切换
} }
QString strMsg; QString strMsg;
if (bConnect) if (bConnect)
{ {
strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已连接")); strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已连接"));
} }
else else
{ {
strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已断开")); strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已断开"));
} }
m_pCtrl->addLog(strMsg, emTypeRunState); m_pCtrl->addLog(strMsg, emTypeRunState);
ui.main_textBrowser->append(strMsg); ui.main_textBrowser->append(strMsg);
@ -1008,7 +1008,7 @@ Q_SLOT void lpMainWin::onDetectStateRecv(int nIndex, int value)
Q_SLOT void lpMainWin::onClearLibRev(bool state) Q_SLOT void lpMainWin::onClearLibRev(bool state)
{ {
/*接收到库清空应答*/ /*接收到库清空应答*/
if (SendModelLibTask) { if (SendModelLibTask) {
if (SendModelLibTask->isRunning()) if (SendModelLibTask->isRunning())
SendModelLibTask->stop(); SendModelLibTask->stop();
@ -1018,7 +1018,7 @@ Q_SLOT void lpMainWin::onClearLibRev(bool state)
} }
} }
//接收到心跳包 关闭定时器 //接收到心跳包 关闭定时器
Q_SLOT void lpMainWin::onPulseRev() Q_SLOT void lpMainWin::onPulseRev()
{ {
if (m_TimerID != 0) if (m_TimerID != 0)
@ -1031,7 +1031,7 @@ Q_SLOT void lpMainWin::onPulseRev()
Q_SLOT void lpMainWin::onRecvTrigPara() Q_SLOT void lpMainWin::onRecvTrigPara()
{ {
emit(sgShowMsgdlg(tr("PLC已收到相关设置参数"))); emit(sgShowMsgdlg(tr("PLC已收到相关设置参数")));
} }
Q_SLOT void lpMainWin::onReadDetectState(int nIndex, QString strModel) Q_SLOT void lpMainWin::onReadDetectState(int nIndex, QString strModel)
@ -1065,12 +1065,12 @@ Q_SLOT void lpMainWin::onReadDetectStateASK()
Q_SLOT void lpMainWin::onTrigRecv(int m_value) Q_SLOT void lpMainWin::onTrigRecv(int m_value)
{ {
/*用于接收PLC触发相机的信号 自检是否收到图像 */ /*用于接收PLC触发相机的信号 自检是否收到图像 */
qDebug() << "recv a camera trig :" << QString::number(m_value); qDebug() << "recv a camera trig :" << QString::number(m_value);
qWarning() << "recv a Triger signal from PLC:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")"; qWarning() << "recv a Triger signal from PLC:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
//if (m_pState)//如果是使用软件触发相机拍照 //if (m_pState)//如果是使用软件触发相机拍照
{ {
if (DetectState::instance()->m_CameraTrigeType == 0)//软件触发模式 if (DetectState::instance()->m_CameraTrigeType == 0)//软件触发模式
{ {
if (DetectState::instance()->bLockDetect == true) { if (DetectState::instance()->bLockDetect == true) {
//CC_Action(CC_AC_NEXT); //CC_Action(CC_AC_NEXT);
@ -1085,9 +1085,9 @@ Q_SLOT void lpMainWin::onServerState(QString Addr, int port, bool m_state)
{ {
QString str; QString str;
if (m_state == true) if (m_state == true)
str = QString(tr("已打开")); str = QString(tr("已打开"));
else else
str = QString(tr("已关闭")); str = QString(tr("已关闭"));
QString strMsg = QString("serverIP %1 port %2 %3.").arg(Addr).arg(port).arg(str); QString strMsg = QString("serverIP %1 port %2 %3.").arg(Addr).arg(port).arg(str);
m_pCtrl->addLog(m_pCtrl->getUserName() + ":" + strMsg, emTypeRunState); m_pCtrl->addLog(m_pCtrl->getUserName() + ":" + strMsg, emTypeRunState);
} }
@ -1118,7 +1118,7 @@ Q_SLOT void lpMainWin::onShutDownComputer()
//*********************************************************************** //***********************************************************************
Q_SLOT void lpMainWin::onPulseTimer() Q_SLOT void lpMainWin::onPulseTimer()
{ {
//心跳包发送 //心跳包发送
if (m_pNet) if (m_pNet)
{ {
m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline); m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline);
@ -1150,7 +1150,7 @@ Q_SLOT void lpMainWin::onGetImg()
{ {
ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 1px solid rgb(0,0,0,250);background-color: rgb(200, 200, 200);}")); ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 1px solid rgb(0,0,0,250);background-color: rgb(200, 200, 200);}"));
} }
//展示信息 //展示信息
Q_SLOT void lpMainWin::onShowMsg(QString str) Q_SLOT void lpMainWin::onShowMsg(QString str)
{ {
// QPulpewidget *pw = new QPulpewidget(); // QPulpewidget *pw = new QPulpewidget();
@ -1193,16 +1193,16 @@ void lpMainWin::onInitAbout()
"<p>%3:www.hzleaper.com</p>" "<p>%3:www.hzleaper.com</p>"
"<p>%4:%5</p>" "<p>%4:%5</p>"
"<p>%6:%7</p>" "<p>%6:%7</p>"
"<p>%8%9</p>" "<p>%8%9</p>"
"<p> </p>" "<p> </p>"
).arg(tr("轮毂型号识别系统")) ).arg(tr("轮毂型号识别系统"))
.arg(tr("本软件由杭州利珀科技开发,用于轮毂型号识别和分类,可搭配流水线运输系统使用")) .arg(tr("本软件由杭州利珀科技开发,用于轮毂型号识别和分类,可搭配流水线运输系统使用"))
.arg(tr("若需要进一步了解该产品的相关信息,请访问我们的网站")) .arg(tr("若需要进一步了解该产品的相关信息,请访问我们的网站"))
.arg(tr("软件版本")).arg(111) .arg(tr("软件版本")).arg(111)
//.arg(tr("算法版本")).arg(strWhelAlgoType) //.arg(tr("算法版本")).arg(strWhelAlgoType)
.arg(tr("算法版本")).arg(111) .arg(tr("算法版本")).arg(111)
.arg(tr("最后更新时间")).arg(111) .arg(tr("最后更新时间")).arg(111)
.arg(tr("版权 (c) 属 杭州利珀科技有限公司 所有")); .arg(tr("版权 (c) 属 杭州利珀科技有限公司 所有"));
m_aboutDlg.setFixedSize(500, 300); m_aboutDlg.setFixedSize(500, 300);
//QLabel* lbTitle = new QLabel(m_lightBox); //QLabel* lbTitle = new QLabel(m_lightBox);
//QLabel* lbTitle = new QLabel(&m_mainWidget); //QLabel* lbTitle = new QLabel(&m_mainWidget);
@ -1219,7 +1219,7 @@ void lpMainWin::onInitAbout()
QPalette pl = pEdit->palette(); QPalette pl = pEdit->palette();
pl.setBrush(QPalette::Base, QBrush(QColor(255, 0, 0, 0))); pl.setBrush(QPalette::Base, QBrush(QColor(255, 0, 0, 0)));
pEdit->setPalette(pl); pEdit->setPalette(pl);
QPushButton* lbClose = new QPushButton(tr("关闭")); QPushButton* lbClose = new QPushButton(tr("关闭"));
//QGridLayout* lbLayout = new QGridLayout(m_lightBox); //QGridLayout* lbLayout = new QGridLayout(m_lightBox);
QGridLayout* lbLayout = new QGridLayout(&m_aboutDlg); QGridLayout* lbLayout = new QGridLayout(&m_aboutDlg);
//lbLayout->addWidget(lbTitle, 1, 1); //lbLayout->addWidget(lbTitle, 1, 1);
@ -1237,15 +1237,15 @@ void lpMainWin::onShowResult(Result2Ui* pRlt)
if (!pRlt) if (!pRlt)
return; return;
/* /*
ui.main_lb_res_model_pic;//匹配结果图 ui.main_lb_res_model_pic;//匹配结果图
ui.main_lb_res_okng;//匹配结果 OK NG ui.main_lb_res_okng;//匹配结果 OK NG
ui.main_lb_res_model_id;//匹配型号 ui.main_lb_res_model_id;//匹配型号
ui.main_lb_res_model_score;//匹配分数 ui.main_lb_res_model_score;//匹配分数
ui.main_lb_res_model_thickness;//厚度 ui.main_lb_res_model_thickness;//厚度
ui.main_lb_res_model_diameter;//直径 ui.main_lb_res_model_diameter;//直径
ui.main_lb_res_model_time;//识别耗时时间 ui.main_lb_res_model_time;//识别耗时时间
ui.main_lb_res_ok_num;//识别总数 ui.main_lb_res_ok_num;//识别总数
ui.main_lb_res_ng_num;//NG 数量 ui.main_lb_res_ng_num;//NG 数量
*/ */
int scareh = ui.main_lb_res_model_pic->height(); int scareh = ui.main_lb_res_model_pic->height();
@ -1336,7 +1336,7 @@ void lpMainWin::SendResultBee(emTypeBee m_Type, int num)
//} //}
if (m_Type == LIGHT_REDBEE) { if (m_Type == LIGHT_REDBEE) {
m_pNet->sendLight(0, 1, 500, 500);//红灯 m_pNet->sendLight(0, 1, 500, 500);//红灯
} }
else if (m_Type == LIGHT_GREENBEE) { else if (m_Type == LIGHT_GREENBEE) {
m_pNet->sendLight(2, 1, 500, 500); m_pNet->sendLight(2, 1, 500, 500);
@ -1375,12 +1375,12 @@ void lpMainWin::SendResultChannel2PLC(Result2Ui* m_Res)
if (defaultInfo) if (defaultInfo)
{ {
nResultChannel = defaultInfo->m_value; nResultChannel = defaultInfo->m_value;
emit(sgShowChannelRes(defaultInfo->m_ChannelName + tr("(默认)"))); emit(sgShowChannelRes(defaultInfo->m_ChannelName + tr("(默认)")));
} }
else else
{ {
nResultChannel = 1000; nResultChannel = 1000;
emit(sgShowChannelRes(tr("默认通道 值1000"))); emit(sgShowChannelRes(tr("默认通道 值1000")));
} }
if (m_pNet) if (m_pNet)
@ -1406,12 +1406,12 @@ void lpMainWin::SendResultChannelCOM(Result2Ui* m_Res)
// if (defaultInfo) // if (defaultInfo)
// { // {
// frame.data1 = defaultInfo->m_value; // frame.data1 = defaultInfo->m_value;
// emit(sgShowChannelRes(defaultInfo->m_ChannelName + QString(tr("(默认)")))); // emit(sgShowChannelRes(defaultInfo->m_ChannelName + QString(tr("(默认)"))));
// } // }
// else // else
// { // {
// frame.data1 = 1000; // frame.data1 = 1000;
// emit(sgShowChannelRes(tr("默认通道 值1000"))); // emit(sgShowChannelRes(tr("默认通道 值1000")));
// } // }
// SendDataToCom(0x47, frame); // SendDataToCom(0x47, frame);
//} //}
@ -1476,7 +1476,7 @@ void lpMainWin::saveImage(Result2Ui* pRes)
} }
void lpMainWin::saveImage(const QPixmap& m_pixmap, QString m_path, QString filename) void lpMainWin::saveImage(const QPixmap& m_pixmap, QString m_path, QString filename)
{//启动多线程保存图像 {//启动多线程保存图像
SaveImgThread *workTread = new SaveImgThread(this); SaveImgThread *workTread = new SaveImgThread(this);
workTread->setPixmap(m_pixmap, m_path, filename); workTread->setPixmap(m_pixmap, m_path, filename);
connect(workTread, &SaveImgThread::finished, workTread, &QObject::deleteLater); connect(workTread, &SaveImgThread::finished, workTread, &QObject::deleteLater);

File diff suppressed because it is too large Load Diff

@ -415,6 +415,7 @@
<ClInclude Include="..\..\src\ImageCompare\pointpair.h" /> <ClInclude Include="..\..\src\ImageCompare\pointpair.h" />
<ClInclude Include="..\..\src\ImageCompare\StdUtils.h" /> <ClInclude Include="..\..\src\ImageCompare\StdUtils.h" />
<ClInclude Include="..\..\src\ImageCompare\TransSolver.h" /> <ClInclude Include="..\..\src\ImageCompare\TransSolver.h" />
<ClInclude Include="..\..\src\interface\Result2Ui.h" />
<ClInclude Include="GeneratedFiles\ui_qaddchanneldlg.h" /> <ClInclude Include="GeneratedFiles\ui_qaddchanneldlg.h" />
<ClInclude Include="GeneratedFiles\ui_qaddmodel.h" /> <ClInclude Include="GeneratedFiles\ui_qaddmodel.h" />
<ClInclude Include="GeneratedFiles\ui_qaddtimedlg.h" /> <ClInclude Include="GeneratedFiles\ui_qaddtimedlg.h" />
@ -1287,6 +1288,9 @@
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild> </CustomBuild>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="lpmain_en.ts" />
</ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}</ProjectGuid> <ProjectGuid>{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword> <Keyword>Qt4VSv1.0</Keyword>

@ -87,6 +87,11 @@
<Filter Include="CustomUILib\Model"> <Filter Include="CustomUILib\Model">
<UniqueIdentifier>{2ebbabc3-5d96-4349-a29c-19d33c06f9f2}</UniqueIdentifier> <UniqueIdentifier>{2ebbabc3-5d96-4349-a29c-19d33c06f9f2}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.cpp"> <ClCompile Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.cpp">
@ -688,6 +693,9 @@
<ClInclude Include="GeneratedFiles\ui_QCamSettingDlg.h"> <ClInclude Include="GeneratedFiles\ui_QCamSettingDlg.h">
<Filter>Generated Files</Filter> <Filter>Generated Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\interface\Result2Ui.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuild Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.h"> <CustomBuild Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.h">
@ -1065,4 +1073,9 @@
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\..\src\tpMain\tpMain.rc" /> <ResourceCompile Include="..\..\src\tpMain\tpMain.rc" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="lpmain_en.ts">
<Filter>Translation Files</Filter>
</None>
</ItemGroup>
</Project> </Project>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -5,12 +5,6 @@ VisualStudioVersion = 15.0.28307.1267
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpMain", "tpMain\tpMain.vcxproj", "{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpMain", "tpMain\tpMain.vcxproj", "{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpAlgorithmQt", "tpAlgorithmQt\tpAlgorithmQt.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QUserInfo", "QUserInfo\QUserInfo.vcxproj", "{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RasterSDG20", "RasterSDG20\RasterSDG20.vcxproj", "{CE765894-2106-48FE-99C3-D8D7624889A0}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
@ -21,24 +15,12 @@ Global
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Debug|x64.Build.0 = Debug|x64 {A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Debug|x64.Build.0 = Debug|x64
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.ActiveCfg = Release|x64 {A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.ActiveCfg = Release|x64
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.Build.0 = Release|x64 {A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.Build.0 = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Debug|x64.ActiveCfg = Debug|x64
{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Debug|x64.Build.0 = Debug|x64
{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Release|x64.ActiveCfg = Release|x64
{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Release|x64.Build.0 = Release|x64
{CE765894-2106-48FE-99C3-D8D7624889A0}.Debug|x64.ActiveCfg = Debug|x64
{CE765894-2106-48FE-99C3-D8D7624889A0}.Debug|x64.Build.0 = Debug|x64
{CE765894-2106-48FE-99C3-D8D7624889A0}.Release|x64.ActiveCfg = Release|x64
{CE765894-2106-48FE-99C3-D8D7624889A0}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
Qt5Version = qt5.9.4-msvc2017-x64
SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A} SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A}
Qt5Version = qt5.9.4-msvc2017-x64
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

Loading…
Cancel
Save