增加英文翻译文件

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)
: QWidget(parent)

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

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

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

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

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

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

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

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

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

@ -87,6 +87,11 @@
<Filter Include="CustomUILib\Model">
<UniqueIdentifier>{2ebbabc3-5d96-4349-a29c-19d33c06f9f2}</UniqueIdentifier>
</Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.cpp">
@ -688,6 +693,9 @@
<ClInclude Include="GeneratedFiles\ui_QCamSettingDlg.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\interface\Result2Ui.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\tpMain\QDiskCleanThread\QDiskCleanThread.h">
@ -1065,4 +1073,9 @@
<ItemGroup>
<ResourceCompile Include="..\..\src\tpMain\tpMain.rc" />
</ItemGroup>
<ItemGroup>
<None Include="lpmain_en.ts">
<Filter>Translation Files</Filter>
</None>
</ItemGroup>
</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
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpMain", "tpMain\tpMain.vcxproj", "{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}"
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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|x64.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
Qt5Version = qt5.9.4-msvc2017-x64
SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A}
Qt5Version = qt5.9.4-msvc2017-x64
EndGlobalSection
EndGlobal

Loading…
Cancel
Save