1 添加lpReport查看报表软件的英文翻译

2 解决部分.ts翻译文件中文乱码的问题
jizhi
qushuailong 5 years ago
parent 8e6ab57b18
commit dbed6453cf

@ -1,4 +1,4 @@
#include "Raster.h"
#include "Raster.h"
#include "ThicknessVector.h"
#include <QDebug>
#include <QJsonObject>
@ -30,7 +30,7 @@ void CRaster::saveDefaultParam()
QJsonObject Rasterobj_dev;
Rasterobj_dev.insert("beilv", QJsonValue(m_pRasSt->m_beilv));
Rasterobj_dev.insert("basehight", QJsonValue(m_pRasSt->m_baseHight));
Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
Rasterobj_dev.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
Rasterobj_dev.insert("maxsize", QJsonValue(m_pRasSt->m_maxsize));
Rasterobj_dev.insert("lowNum", QJsonValue(m_pRasSt->m_lowNum));
Rasterobj_dev.insert("beilv_bool", QJsonValue(m_pRasSt->m_bool_beilv));
@ -61,7 +61,7 @@ RasterST * CRaster::getRasterSt() const
bool CRaster::readRasterJson()
{
//!>读取调试模式信息 是否保存good的图片 是否保存bad的图片 是否使用调试模式
//!>读取调试模式信息 是否保存good的图片 是否保存bad的图片 是否使用调试模式
QFile loadFile(m_strPath);
if (!loadFile.open(QIODevice::ReadOnly)) {
@ -76,7 +76,7 @@ bool CRaster::readRasterJson()
if (!Rsaterobj.isEmpty()) {
m_pRasSt->m_beilv = Rsaterobj.value("beilv").toDouble(5.07);
m_pRasSt->m_baseHight = Rsaterobj.value("basehight").toDouble(87);
m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//中值
m_pRasSt->mid_value = Rsaterobj.value("mid_value").toDouble(0.8);//中值
m_pRasSt->m_maxsize = Rsaterobj.value("maxsize").toInt(10);
m_pRasSt->m_lowNum = Rsaterobj.value("lowNum").toInt(0);
m_pRasSt->m_bool_beilv = Rsaterobj.value("beilv_bool").toBool(false);
@ -121,7 +121,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType)
QJsonObject Rasterobj;
Rasterobj.insert("beilv", QJsonValue(m_pRasSt->m_beilv));
Rasterobj.insert("basehight", QJsonValue(m_pRasSt->m_baseHight));
Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
Rasterobj.insert("mid_value", QJsonValue(m_pRasSt->mid_value));//中值
Rasterobj.insert("maxsize", QJsonValue(m_pRasSt->m_maxsize));
Rasterobj.insert("lowNum", QJsonValue(m_pRasSt->m_lowNum));
Rasterobj.insert("beilv_bool", QJsonValue(m_pRasSt->m_bool_beilv));
@ -153,7 +153,7 @@ bool CRaster::saveRasterJson(emTySaveJsonType emType)
QString CRaster::getThicknessListStr()
{
QList<double> m = getThicknessList();/*显示滤波的数据*/
QList<double> m = getThicknessList();/*显示滤波的数据*/
QString str = "thickness list: ";
for (int i = 0; i < m.size(); i++)
{
@ -167,7 +167,7 @@ QString CRaster::getThicknessListStr()
double CRaster::getThicknessValue() const
{
//
// QList<double> m = getThicknessList();/*显示滤波的数据*/
// QList<double> m = getThicknessList();/*显示滤波的数据*/
// QString str = "thickness value list: ";
// for (int i = 0; i < m.size(); i++)
// {
@ -180,7 +180,7 @@ double CRaster::getThicknessValue() const
void CRaster::addThicknessValue(double dValue)
{
double dThickness = (63 - dValue) * m_pRasSt->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度
double dThickness = (63 - dValue) * m_pRasSt->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度
m_pThickness->addValue(dThickness + m_pRasSt->m_baseHight);
}
@ -188,7 +188,7 @@ bool CRaster::showRasterDlg()
{
// QRasterDlg dlg;
// dlg.SetData2UI(m_pRasSt);
// dlg.setWindowTitle("光栅标定参数设置");
// dlg.setWindowTitle("光栅标定参数设置");
// dlg.setWindowIcon(QIcon(":/image/leaper"));
// if (dlg.exec() == QDialog::Accepted)
// {

@ -1,13 +1,13 @@
#pragma once
#include "qstring.h"
struct RasterST;
struct RasterST//光栅数据结构体
struct RasterST//光栅数据结构体
{
double m_beilv;//光栅倍率 一格对应的毫米数
double m_baseHight;//测量累加高度
double mid_value;//中值大小
int m_maxsize;//容器大小
int m_lowNum;//最小值
double m_beilv;//光栅倍率 一格对应的毫米数
double m_baseHight;//测量累加高度
double mid_value;//中值大小
int m_maxsize;//容器大小
int m_lowNum;//最小值
bool m_bool_beilv;
bool m_bool_baseHight;
bool m_bool_maxsize;

@ -1,4 +1,4 @@
#include "ThicknessVector.h"
#include "ThicknessVector.h"
#include "Raster.h"
ThicknessVector::ThicknessVector()
@ -33,11 +33,11 @@ double ThicknessVector::filterValue()
}
QList<double> lstCopy = m_lstThickness;
qSort(lstCopy);
//中值
//中值
return lstCopy.at(int(m_lstThickness.size() * pRaster->mid_value/*0.8*/));
// 均值
// 均值
// 众数
// 众数
return 0;
}

@ -1,4 +1,4 @@
#include "muban.h"
#include "muban.h"
#include <QtUiTools/QUiLoader>
#include "RasterAnalysis.h"
#include "QtWidgets/QGroupBox"
@ -46,7 +46,7 @@ muban::muban(QWidget *parent) :QWidget(parent), m_pRasterCom(NULL), m_pRaster(NU
Rasteranalysis->loadAnalyseUpdatefunc(this, &muban::Appanalysis);
connect(this, SIGNAL(recvDataSignal(QByteArray)), Rasteranalysis, SLOT(recvDataByCOM(QByteArray)));
/*类内部的信号和槽自个绑定 各有各的功能*/
/*类内部的信号和槽自个绑定 各有各的功能*/
m_timer = new QTimer();
m_timerChackSys = new QTimer();
connect(m_timer, SIGNAL(timeout()), this, SLOT(onTimer()));
@ -113,10 +113,10 @@ void muban::Appanalysis(Raster_ComFrame m_ComFrame){
case 0x66:
{
QString str;
str += tr("发送器光束数:%1\n").arg(m_RecvData.data1);
str += tr("发送器故障通道位置:%1\n").arg(m_RecvData.data2);
str += tr("接收器光束数:%1\n").arg(m_RecvData.data3);
str += tr("接收器故障通道位置:%1\n").arg(m_RecvData.data4);
str += tr("发送器光束数:%1\n").arg(m_RecvData.data1);
str += tr("发送器故障通道位置:%1\n").arg(m_RecvData.data2);
str += tr("接收器光束数:%1\n").arg(m_RecvData.data3);
str += tr("接收器故障通道位置:%1\n").arg(m_RecvData.data4);
str += getSysState(m_RecvData.data5);
emit(sgShowSys(str, m_RecvData.data5));
@ -124,9 +124,9 @@ void muban::Appanalysis(Raster_ComFrame m_ComFrame){
break;
case 0x67:
{
emit(sgThress((m_RecvData.data4 * 255 + m_RecvData.data3)));//发送光栅数据
emit(sgThress((m_RecvData.data4 * 255 + m_RecvData.data3)));//发送光栅数据
emit(sgShowValue(63-(m_RecvData.data4 * 255 + m_RecvData.data3)));//显示光栅数据
emit(sgShowValue(63-(m_RecvData.data4 * 255 + m_RecvData.data3)));//显示光栅数据
if (bInsertData)
{
emit(sgShowMsgLabel(m_RecvData.data4 * 255 + m_RecvData.data3, 1));
@ -190,8 +190,8 @@ void muban::initUI()
m_switchbp = new SWitchButton;
//m_switchbp->resize(150, 100);
//m_switchbp->setFixedHeight(50);
m_switchbp->SetOffName(tr("停止采样"));
m_switchbp->SetOnName(tr("开始采样"));
m_switchbp->SetOffName(tr("停止采样"));
m_switchbp->SetOnName(tr("开始采样"));
m_switchbp->SetPressOffBkColor1(QColor(230, 10, 10));
m_switchbp->SetPressOffBkColor2(QColor(230, 10, 10));
m_switchbp->SetPressOnBkColor1(QColor(46, 183, 67));
@ -211,15 +211,15 @@ void muban::initUI()
QSize ht = Raster_frame->size();
QRect a= Raster_frame->rect();
m_chart = new myChart1(Raster_frame);
m_chart->setTitle(tr("光栅数据采样"));
m_chart->setTitle(tr("光栅数据采样"));
{
QGroupBox *pGroup = ui.Raster_groupBoxSys;
QHBoxLayout *pGridLayout = new QHBoxLayout;
m_switsybp = new SWitchButton;
m_switsybp->resize(150, 50);
m_switsybp->SetOffName(tr("停止查询"));
m_switsybp->SetOnName(tr("5s定时查询"));
m_switsybp->SetOffName(tr("停止查询"));
m_switsybp->SetOnName(tr("5s定时查询"));
m_switsybp->SetPressOffBkColor1(QColor(200, 10, 10));
m_switsybp->SetPressOffBkColor2(QColor(200, 10, 10));
m_switsybp->SetPressOnBkColor1(QColor(46, 150, 67));
@ -238,24 +238,24 @@ void muban::initUI()
connect(ui.Raster_SaveRaster, SIGNAL(clicked()), this, SLOT(onSaveData()));
//串口扫描按钮
//串口扫描按钮
connect(ui.Raster_ResScan, SIGNAL(clicked()), this, SLOT(onScanDevice()));
//串口名
//串口名
Raster_ComBox = ui.Raster_ComBox;
//波特率
//波特率
Raster_Baute = ui.Raster_Baute;
Raster_Baute->addItem("115200");
Raster_Baute->addItem("38400");
Raster_Baute->addItem("19200");
Raster_Baute->addItem("9600");
// 打开设备
// 打开设备
Raster_OpenDevice = ui.Raster_OpenDevice;
connect(Raster_OpenDevice, SIGNAL(clicked()), this, SLOT(onCtrolDevice()));
//关闭设备
//关闭设备
Raster_CloseDevice = ui.Raster_CloseDevice;
connect(Raster_CloseDevice, SIGNAL(clicked()), this, SLOT(onCtrolDevice()));
@ -311,22 +311,22 @@ QString muban::getSysState(quint8 nValue)
switch (nValue)
{
case 0:
str = tr("系统工作正常");
str = tr("系统工作正常");
break;
case 1:
str = tr("系统检测到对准不良");
str = tr("系统检测到对准不良");
break;
case 2:
str = tr("输入电源电压偏高");
str = tr("输入电源电压偏高");
break;
case 3:
str = tr("输入电源电压偏低");
str = tr("输入电源电压偏低");
break;
case 4:
str = tr("同步丢失,发送单元没接");
str = tr("同步丢失,发送单元没接");
break;
case 5:
str = tr("系统内部出错");
str = tr("系统内部出错");
break;
default:
break;
@ -340,13 +340,13 @@ Q_SLOT void muban::ButtonClick()
QString strObj = watchObj->objectName();
if (strObj == "Raster_SendData"){
QByteArray m_sendData;
QString strSend = "F4 41 67 00 63 FE ";//查询光栅值
QString strSend = "F4 41 67 00 63 FE ";//查询光栅值
m_sendData.append(MyHelper::QString2Hex(strSend));
emit (SignalByteData2Parent(m_sendData));
}
else if (strObj == "Raster_CheckSys"){
QByteArray m_sendData;
QString strSend = "F4 41 66 00 64 FE ";//查询光栅系统状态
QString strSend = "F4 41 66 00 64 FE ";//查询光栅系统状态
m_sendData.append(MyHelper::QString2Hex(strSend));
emit(SignalByteData2Parent(m_sendData));
}
@ -419,7 +419,7 @@ Q_SLOT void muban::onShowValue(int value)
Q_SLOT void muban::onTimerCheckSys()
{
QByteArray m_sendData;
QString strSend = "F4 41 66 00 64 FE ";//查询光栅系统状态
QString strSend = "F4 41 66 00 64 FE ";//查询光栅系统状态
m_sendData.append(MyHelper::QString2Hex(strSend));
emit(SignalByteData2Parent(m_sendData));
}
@ -517,8 +517,8 @@ Q_SLOT void muban::onSaveData()
}
Q_SLOT void muban::onScanDevice()
{/*扫描所有串口设备*/
Raster_ComBox->clear();//清空
{/*扫描所有串口设备*/
Raster_ComBox->clear();//清空
QFindDevice *workerThread = new QFindDevice(this);
connect(workerThread, &QFindDevice::resultReady, this, &muban::onRecvThread);
@ -635,7 +635,7 @@ Q_SLOT void muban::onAddData2Graph(int nData)
{
if (m_graph1&&bInsertData&&m_pRaster)
{
double dThickness = (63 - nData) * m_pRaster->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度
double dThickness = (63 - nData) * m_pRaster->m_beilv*1.0;//获取光栅数据 乘以 倍率 得出遮挡的厚度
double dValue = dThickness + m_pRaster->m_baseHight;
m_graph1->appendPoint(dValue);
}

@ -1,4 +1,4 @@
#include <QtGui/QPainter>
#include <QtGui/QPainter>
#include "qsimpletickergraph.h"
namespace

@ -1,4 +1,4 @@
#include "rastersdg20.h"
#include "rastersdg20.h"
#include "muban.h"
#include "CMySerialPort.h"
#include "Raster.h"
@ -31,14 +31,14 @@ RasterSDG20::RasterSDG20(const QString filepath)
connect(this, SIGNAL(sgShowComState(QString, int)), m_pmuBan, SLOT(onShowComState(QString, int)));
connect(m_pmuBan, SIGNAL(sgCtrolDevice(int)), this, SLOT(onCtrolDevice(int)));
//connect(this, SIGNAL(sgShowThress(QString)), m_pmuBan, SLOT(onShowThrenss(QString)));
m_pmuBan->setWindowTitle(tr("光栅标定和设置"));
m_pmuBan->setWindowTitle(tr("光栅标定和设置"));
m_pmuBan->setWindowIcon(QIcon(":/image/leaper"));
RasterCom* m_pRasterCom = m_pRaster->getRasterCom();
if (m_pRasterCom->m_UseRaster){
onCtrolDevice(0);
}
else{
QString str = tr("未打开任何串口设备!!!");// .arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
QString str = tr("未打开任何串口设备!!!");// .arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
emit(sgShowComState(str, 3));
}
}
@ -132,17 +132,17 @@ Q_SLOT void RasterSDG20::onCtrolDevice(int nValue)
RasterCom* m_pRasterCom = m_pRaster->getRasterCom();
if (nValue == int(EMTYPE_OPENCOM)){
if (m_SerialPort->OpenCom(m_pRasterCom->m_ComName, m_pRasterCom->m_Baute)){
QString str = tr("串口%1 %2 打开成功 ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
QString str = tr("串口%1 %2 打开成功 ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
emit(sgShowComState(str, int(EMTYPE_OPENCOM)));
}
else{
QString str = tr("串口%1 %2 打开失败!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
QString str = tr("串口%1 %2 打开失败!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
emit(sgShowComState(str, int(EMTYPE_OPENERROR)));
}
}
else if(nValue==int(EMTYPE_CLOSECOM)){
m_SerialPort->CloseCom();
QString str = tr("串口%1 %2 关闭!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
QString str = tr("串口%1 %2 关闭!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
emit(sgShowComState(str, int(EMTYPE_CLOSECOM)));
}
}

@ -1,4 +1,4 @@
#include "mychart1.h"
#include "mychart1.h"
#include "QtGui\QPainter"
#include "QtGui\QBrush"
#include "QtGui\QColor"

@ -1,4 +1,4 @@
#include "switchbutton.h"
#include "switchbutton.h"
#include "QtGui\qevent.h"
#include "QtGui\QPainter"
@ -11,22 +11,22 @@ SWitchButton::SWitchButton(QWidget *parent)
{
m_pressstyle = GRAPH_PRESSSTYLE_SYSTEM1;
//渐进色
m_offbkcolor1 = QColor(133, 133, 133); //分开背景色1
m_offbkcolor2 = QColor(99, 99, 99); //分开背景色2
//渐进色
m_offbkcolor1 = QColor(133, 133, 133); //分开背景色1
m_offbkcolor2 = QColor(99, 99, 99); //分开背景色2
//渐进色
m_onbkcolor1 = QColor(91, 137, 14); //闭合背景色1
m_onbkcolor2 = QColor(71, 103, 8); //闭合背景色2
//渐进色
m_onbkcolor1 = QColor(91, 137, 14); //闭合背景色1
m_onbkcolor2 = QColor(71, 103, 8); //闭合背景色2
m_slidecolor1 = QColor(252, 252, 252);
m_slidecolor2 = QColor(224, 224, 224);
m_textcolor = QColor(255, 255, 255);
m_textfont = QFont("宋体", 10);
m_textfont = QFont("宋体", 10);
m_offname = tr("");
m_onname = tr("");
m_offname = tr("");
m_onname = tr("");
m_state = 0;
}
@ -76,11 +76,11 @@ void SWitchButton::DrawPressStyle(QPainter *painter, QRect &rect, uchar state)
{
if (painter == NULL) return;
DrawPressBkGround(painter, rect, state); //绘制背景
DrawPressBkGround(painter, rect, state); //绘制背景
DrawPressText(painter, rect, state); //绘制文字
DrawPressText(painter, rect, state); //绘制文字
DrawPressSlide(painter, rect, state); //绘制滑块
DrawPressSlide(painter, rect, state); //绘制滑块
}
void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state)
@ -95,8 +95,8 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
int x2 = rect.right(); int y2 = rect.bottom();
int width = rect.width(); int height = rect.height();
if (panestyle == GRAPH_PRESSSTYLE_SYSTEM1) { //矩形背景、方形滑块
if (state > 0) { //投入状态
if (panestyle == GRAPH_PRESSSTYLE_SYSTEM1) { //矩形背景、方形滑块
if (state > 0) { //投入状态
painter->setPen(Qt::NoPen);
QLinearGradient linGrad(rect.left(), rect.top(), rect.left(), rect.bottom());
linGrad.setColorAt(0, m_onbkcolor1);
@ -106,7 +106,7 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
painter->drawRoundedRect(rect, 5.0, 5.0);
}
else { //退出状态
else { //退出状态
painter->setPen(Qt::NoPen);
QLinearGradient linGrad(rect.left(), rect.top(), rect.left(), rect.bottom());
linGrad.setColorAt(0, m_offbkcolor1);
@ -117,14 +117,14 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
painter->drawRoundedRect(rect, 5.0, 5.0);
}
//画立体阴影......
//画立体阴影......
painter->setBrush(Qt::NoBrush);
QPen tmppen(Qt::darkGray);
tmppen.setWidth(2.0);
painter->setPen(tmppen);
painter->drawRoundedRect(rect, 5.0, 5.0);
}
else if (panestyle == GRAPH_PRESSSTYLE_SYSTEM2) { //圆角矩形背景、圆形滑块
else if (panestyle == GRAPH_PRESSSTYLE_SYSTEM2) { //圆角矩形背景、圆形滑块
//path
QPainterPath path;
@ -143,7 +143,7 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
QPainterPath interpath = path.intersected(pathrect);
if (state > 0) { //投入状态
if (state > 0) { //投入状态
painter->setPen(Qt::NoPen);
QLinearGradient linGrad(rect.left(), rect.top(), rect.left(), rect.bottom());
linGrad.setColorAt(0, m_onbkcolor1);
@ -152,7 +152,7 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
painter->setBrush(linGrad);
painter->drawPath(interpath);
}
else { //退出状态
else { //退出状态
painter->setPen(Qt::NoPen);
QLinearGradient linGrad(rect.left(), rect.top(), rect.left(), rect.bottom());
linGrad.setColorAt(0, m_offbkcolor1);
@ -162,7 +162,7 @@ void SWitchButton::DrawPressBkGround(QPainter *painter, QRect &rect, uchar state
painter->drawPath(interpath);
}
//画立体阴影......
//画立体阴影......
painter->setBrush(Qt::NoBrush);
painter->setPen(QColor(0, 0, 0, 255));
painter->drawPath(interpath);
@ -186,12 +186,12 @@ void SWitchButton::DrawPressText(QPainter *painter, QRect &rect, uchar state)
QPen tmppen(m_textcolor);
if (state > 0) { //投入状态
if (state > 0) { //投入状态
painter->setFont(m_textfont);
painter->setPen(tmppen);
painter->drawText((int)(x1 + width / 2.0), y1, (int)(width / 2.0), height, Qt::AlignCenter, m_onname);
}
else { //退出状态
else { //退出状态
painter->setFont(m_textfont);
painter->setPen(tmppen);
painter->drawText(x1, y1, (int)(width / 2.0), height, Qt::AlignCenter, m_offname);
@ -216,8 +216,8 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
QRect sliderect;
if (panestyle == GRAPH_PRESSSTYLE_SYSTEM1) { //矩形背景、方形滑块
if (state > 0) { //投入状态
if (panestyle == GRAPH_PRESSSTYLE_SYSTEM1) { //矩形背景、方形滑块
if (state > 0) { //投入状态
sliderect.setLeft(rect.left() + 2);
sliderect.setTop(rect.top() + 2);
sliderect.setWidth((int)(rect.width() / 2.0 - 4));
@ -232,7 +232,7 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
painter->drawRoundedRect(sliderect, 5.0, 5.0);
}
else { //退出状态
else { //退出状态
sliderect.setLeft(rect.right() - (int)(rect.width() / 2.0) + 2);
sliderect.setTop(rect.top() + 2);
sliderect.setWidth((int)(rect.width() / 2.0 - 4));
@ -248,12 +248,12 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
painter->drawRoundedRect(sliderect, 5.0, 5.0);
}
//画立体阴影......
//画立体阴影......
painter->setBrush(Qt::NoBrush);
painter->setPen(QColor(0, 0, 0, 255));
painter->drawRoundedRect(sliderect, 5.0, 5.0);
//画纹理
//画纹理
painter->setPen(QColor(54, 54, 54));
painter->drawLine(sliderect.left() + sliderect.width() / 2.0, sliderect.top() + sliderect.height() / 4.0 + 2, sliderect.left() + sliderect.width() / 2.0, sliderect.bottom() - sliderect.height() / 4.0 - 2);
painter->drawLine(sliderect.left() + sliderect.width() / 2.0 - 5, sliderect.top() + sliderect.height() / 4.0 + 2, sliderect.left() + sliderect.width() / 2.0 - 5, sliderect.bottom() - sliderect.height() / 4.0 - 2);
@ -264,11 +264,11 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
painter->drawLine(sliderect.left() + sliderect.width() / 2.0 - 5 + 1, sliderect.top() + sliderect.height() / 4.0 + 2, sliderect.left() + sliderect.width() / 2.0 - 5 + 1, sliderect.bottom() - sliderect.height() / 4.0 - 2);
painter->drawLine(sliderect.left() + sliderect.width() / 2.0 + 5 + 1, sliderect.top() + sliderect.height() / 4.0 + 2, sliderect.left() + sliderect.width() / 2.0 + 5 + 1, sliderect.bottom() - sliderect.height() / 4.0 - 2);
}
else if (panestyle == GRAPH_PRESSSTYLE_SYSTEM2) { //圆角矩形背景、圆形滑块
else if (panestyle == GRAPH_PRESSSTYLE_SYSTEM2) { //圆角矩形背景、圆形滑块
QRect rrect;
if (state > 0) { //投入状态
if (state > 0) { //投入状态
sliderect.setLeft(rect.left() + 2);
sliderect.setTop(rect.top() + 2);
sliderect.setWidth(rect.height() - 4);
@ -285,7 +285,7 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
painter->drawEllipse(rrect);
}
else { //退出状态
else { //退出状态
sliderect.setLeft(rect.right() - rect.height() + 4 - 2);
sliderect.setTop(rect.top() + 2);
sliderect.setWidth(rect.height() - 4);
@ -302,7 +302,7 @@ void SWitchButton::DrawPressSlide(QPainter *painter, QRect &rect, uchar state)
painter->drawEllipse(rrect);
}
//画立体阴影......
//画立体阴影......
painter->setBrush(Qt::NoBrush);
painter->setPen(QColor(0, 0, 0, 160));
painter->drawEllipse(rrect);

@ -1,4 +1,4 @@
#ifndef CHECKDATA_H
#ifndef CHECKDATA_H
#define CHECKDATA_H
#include <QObject>

@ -1,4 +1,4 @@
#ifndef CHECKTHREAD_H
#ifndef CHECKTHREAD_H
#define CHECKTHREAD_H
#include <QThread>

@ -1,4 +1,4 @@
#ifndef COUNTDATA_H
#ifndef COUNTDATA_H
#define COUNTDATA_H
#include <QObject>

@ -1,4 +1,4 @@
#ifndef QCHECKCAL_H
#ifndef QCHECKCAL_H
#define QCHECKCAL_H
#include <QWidget>

@ -1,4 +1,4 @@
#ifndef QGENALWIDGET_H
#ifndef QGENALWIDGET_H
#define QGENALWIDGET_H
#include <QWidget>

@ -1,4 +1,4 @@
#ifndef QREPORTWIDGET_H
#ifndef QREPORTWIDGET_H
#define QREPORTWIDGET_H
#include <QWidget>

@ -1,4 +1,4 @@
#ifndef QSAVECSVTHREAD_H
#ifndef QSAVECSVTHREAD_H
#define QSAVECSVTHREAD_H
#include <QThread>

@ -1,4 +1,4 @@
#ifndef QTIMEDLG_H
#ifndef QTIMEDLG_H
#define QTIMEDLG_H
#include <QDialog>

@ -1,4 +1,4 @@
#ifndef REPORTMODEL_H
#ifndef REPORTMODEL_H
#define REPORTMODEL_H
#include "reportmodel_global.h"

@ -1,4 +1,4 @@
#ifndef REPORTMODEL_GLOBAL_H
#ifndef REPORTMODEL_GLOBAL_H
#define REPORTMODEL_GLOBAL_H
#include <QtCore/qglobal.h>

@ -1,4 +1,4 @@
#ifndef TESTWIDGET_H
#ifndef TESTWIDGET_H
#define TESTWIDGET_H
#include <QWidget>

@ -1,4 +1,4 @@
#ifndef WAITINGDIALOG_H
#ifndef WAITINGDIALOG_H
#define WAITINGDIALOG_H
#include <QDialog>

@ -1,4 +1,4 @@
#ifndef WORKFORDB_H
#ifndef WORKFORDB_H
#define WORKFORDB_H
#include <QObject>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<TS version="2.1" language="en">
<context>
<name>QextSerialPort</name>
<message>
@ -103,28 +103,28 @@
<name>RasterSDG20</name>
<message>
<location filename="../../src/RasterSDG20/rastersdg20.cpp" line="34"/>
<source><EFBFBD><EFBFBD>դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Calibration and setting of grating</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/rastersdg20.cpp" line="41"/>
<source>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>No serial port device is opened!!!</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/rastersdg20.cpp" line="135"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%1 %2 <EFBFBD>򿪳ɹ<EFBFBD> </source>
<translation></translation>
<source>%1 %2 </source>
<translation>Serial port %1 %2 opened successfully </translation>
</message>
<message>
<location filename="../../src/RasterSDG20/rastersdg20.cpp" line="139"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%1 %2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </source>
<translation></translation>
<source>%1 %2 </source>
<translation>Serial port %1 %2 open failed!!! </translation>
</message>
<message>
<location filename="../../src/RasterSDG20/rastersdg20.cpp" line="145"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%1 %2 <EFBFBD>رգ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </source>
<translation></translation>
<source>%1 %2 </source>
<translation>Serial port %1 %2 closed!!! </translation>
</message>
</context>
<context>
@ -251,7 +251,7 @@
<location filename="../../src/RasterSDG20/Rester.ui" line="581"/>
<location filename="../../src/RasterSDG20/Rester.ui" line="634"/>
<source>mm</source>
<translation>mm</translation>
<translation></translation>
</message>
<message>
<location filename="../../src/RasterSDG20/Rester.ui" line="555"/>
@ -304,7 +304,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/RasterSDG20/Rester.ui" line="692"/>
<source>B</source>
<translation>B:</translation>
<translation></translation>
</message>
<message>
<location filename="../../src/RasterSDG20/Rester.ui" line="712"/>
@ -324,7 +324,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/RasterSDG20/Rester.ui" line="724"/>
<source>K:</source>
<translation>K:</translation>
<translation></translation>
</message>
<message>
<location filename="../../src/RasterSDG20/Rester.ui" line="750"/>
@ -336,77 +336,99 @@ p, li { white-space: pre-wrap; }
<name>SWitchButton</name>
<message>
<location filename="../../src/RasterSDG20/widget/switchbutton.cpp" line="28"/>
<source></source>
<translation>Separate</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/widget/switchbutton.cpp" line="29"/>
<source><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Closed</translation>
</message>
</context>
<context>
<name>muban</name>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="116"/>
<location filename="../../src/RasterSDG20/muban.cpp" line="118"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%1
<source>:%1
</source>
<translation></translation>
<translation>Beam number of transmitter:%1
</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="117"/>
<source>:%1
</source>
<translation>Fault channel location of transmitter:%1
</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="118"/>
<source>:%1
</source>
<translation>Beam number of receiver:%1
</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="119"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>:%1
<source>:%1
</source>
<translation></translation>
<translation>Fault channel location of receiver:%1
</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="193"/>
<source>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Stop sampling</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="194"/>
<source><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Start sampling</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="214"/>
<source><EFBFBD><EFBFBD>դ<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Raster data sampling</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="221"/>
<source>ֹͣ<EFBFBD><EFBFBD>ѯ</source>
<translation></translation>
<source></source>
<translation>Stop query</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="222"/>
<source>5s<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ѯ</source>
<translation></translation>
<source>5s</source>
<translation>5s timing query</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="314"/>
<source>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>The system is working properly</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="317"/>
<source>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>The system detects poor alignment</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="320"/>
<source></source>
<translation>High input power supply voltage</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="323"/>
<source><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ѹƫ<EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Low input power supply voltage</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="326"/>
<source>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>Ԫû<EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>Synchronization lost, sending unit not connected</translation>
</message>
<message>
<location filename="../../src/RasterSDG20/muban.cpp" line="329"/>
<source>ϵͳ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></source>
<translation></translation>
<source></source>
<translation>System internal error</translation>
</message>
</context>
<context>

@ -1,15 +1,15 @@
#include "ModelDB.h"
#include "ModelDB.h"
#define _MD_PRIMARY_KEY "uid"
#define _MD_TABLE_FORMS_MANE "wftable" //数据表名称
#define _MD_MODEL "model" //model 模型名称
#define _MD_DIAMETER "diameter" //直径
#define _MD_HIGHT "hight" //高度
#define _MD_CORRELATE "correlate" //相似度
#define _MD_CHANNEL "channel" //通道
#define _MD_PICPATH "picpath" //图片路径
#define _MD_ROTATE "rotate"//辐条个数
#define _MD_UPDATE_TIME "time" //最后更新的时间
#define _MD_PIC "pic" //图片
#define _MD_TABLE_FORMS_MANE "wftable" //数据表名称
#define _MD_MODEL "model" //model 模型名称
#define _MD_DIAMETER "diameter" //直径
#define _MD_HIGHT "hight" //高度
#define _MD_CORRELATE "correlate" //相似度
#define _MD_CHANNEL "channel" //通道
#define _MD_PICPATH "picpath" //图片路径
#define _MD_ROTATE "rotate"//辐条个数
#define _MD_UPDATE_TIME "time" //最后更新的时间
#define _MD_PIC "pic" //图片
ModelDB::ModelDB(const QString& dbName, const QString& dbType) :DataBaseSql(dbName, dbType)
{
}

@ -1,4 +1,4 @@
#include "lpReport.h"
#include "lpReport.h"
#include "qtimedlg.h"
#include <QSqlQuery>
#include <QFileDialog>
@ -26,7 +26,11 @@ enum EM_TYPE_TIME
lpReport::lpReport(QWidget *parent)
: QMainWindow(parent)
{
//加载语言设置
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLanguage = languageSetting.value("language", "Chinese").toString();
SetLanguage(strLanguage);
qRegisterMetaType<QSqlQuery>("QSqlQuery");
ui.setupUi(this);
onInitUI();
@ -51,14 +55,14 @@ lpReport::lpReport(QWidget *parent)
nstartTime.setHMS(0, 0, 0);
nEndTime.setHMS(23, 59, 59);
m_tableModel = new QStandardItemModel;
m_WorkDB = new WorkForDB;
m_WorkDB->moveToThread(&m_Workthread);
m_WorkDB = new WorkForDB;
m_WorkDB->moveToThread(&m_Workthread);
m_WorkDB->setDB(m_pDb);
connect(&m_Workthread, &QThread::finished, m_WorkDB, &QObject::deleteLater);
connect(this, &lpReport::operate, m_WorkDB, &WorkForDB::doWork);
connect(m_WorkDB, &WorkForDB::resultReady, this, &lpReport::handleResults);
m_Workthread.start();
connect(&m_Workthread, &QThread::finished, m_WorkDB, &QObject::deleteLater);
connect(this, &lpReport::operate, m_WorkDB, &WorkForDB::doWork);
connect(m_WorkDB, &WorkForDB::resultReady, this, &lpReport::handleResults);
m_Workthread.start();
qDebug() << "start thread m_Workthread";
m_WorkCount = new CountData;
@ -90,7 +94,8 @@ lpReport::lpReport(QWidget *parent)
InitUIParam();
SetModelNames(strList);
setWindowTitle("数据记录查看");
setWindowTitle(tr("数据记录查看"));
setWindowIcon(QIcon(":/lpReport/Resources/Log.png"));
}
@ -128,7 +133,7 @@ lpReport::~lpReport()
if (_pCompleter) {
delete _pCompleter;
_pCompleter = NULL;
}
}
if (m_countwidget)
{
delete m_countwidget;
@ -155,9 +160,9 @@ void lpReport::onInitUI()
connect(this, SIGNAL(sgSetCurrentIndex(int)), ui.stackedWidget, SLOT(setCurrentIndex(int)));
connect(ui.comboBox_Banci_Calculate, SIGNAL(currentIndexChanged(int)), this, SLOT(SlotCombox(int)));
connect(ui.comboBox_Banci, SIGNAL(currentIndexChanged(int)), this, SLOT(SlotCombox(int)));
ui.comboBox_Model->setEditable(true);
connect(ui.Prev_checkShengchang, SIGNAL(clicked()), this, SLOT(onHistoryButton()));
connect(ui.Next_checkShengchang, SIGNAL(clicked()), this, SLOT(onHistoryButton()));
@ -165,8 +170,8 @@ void lpReport::onInitUI()
QValidator *validator = new QIntValidator(1, 9999, this);
ui.LineNumber_checkShengchang->setValidator(validator);
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(0).arg(0));
int nItenCount = ui.check_listWidget->count();
for (int nIndex = 0; nIndex < nItenCount; nIndex++)
@ -185,8 +190,8 @@ void lpReport::onInitUI()
connect(ui.Prev_checklog, SIGNAL(clicked()), this, SLOT(onLogButton()));
connect(ui.Next_checklog, SIGNAL(clicked()), this, SLOT(onLogButton()));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(0));
}
void lpReport::timerEvent(QTimerEvent *event)
@ -271,8 +276,8 @@ Q_SLOT void lpReport::onCheckButton()
{
QObject *obj = sender();
QString str = obj->objectName();
if ("pushButton_Checkdata" == str)//查询生产数据
{/*这里需要做数据分页显示 减少内存泄露*/
if ("pushButton_Checkdata" == str)//查询生产数据
{/*这里需要做数据分页显示 减少内存泄露*/
static bool checkflags = false;
if (checkflags == false)
{
@ -285,13 +290,13 @@ Q_SLOT void lpReport::onCheckButton()
{
if (m_Totaltime.value(strBanci).m_startTime > m_Totaltime.value(strBanci).m_endTime)
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的班次时间是隔夜的,请您重新选择一下当前查询的日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的班次时间是隔夜的,请您重新选择一下当前查询的日期,再查询"));
checkflags = false;
return;
}
else
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
checkflags = false;
return;
}
@ -301,7 +306,7 @@ Q_SLOT void lpReport::onCheckButton()
{
if (m_startDate_History.date() > m_endDate_History.date())
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
checkflags = false;
return;
}
@ -309,15 +314,15 @@ Q_SLOT void lpReport::onCheckButton()
QString m_strLast = ui.label_Time1_History->text();
QString m_endLast = ui.label_Time2_History->text();
QString strMsg = tr("查询了%1-%2的生产数据").arg(m_strLast).arg(m_endLast);
QString strMsg = tr("查询了%1-%2的生产数据").arg(m_strLast).arg(m_endLast);
SaveLog(strMsg);
QApplication::setOverrideCursor(Qt::WaitCursor);
QFont font;
font.setPixelSize(14);
ui.label_Tab2_Title->setFont(font);
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录").arg(m_strLast).arg(m_endLast);
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录").arg(m_strLast).arg(m_endLast);
ui.label_Tab2_Title->setText(m_Title);
if (modelName == tr("全部"))
if (modelName == tr("全部"))
CheckDataHistoryByDate(m_strLast, m_endLast, "*");
else
CheckDataHistoryByDate(m_strLast, m_endLast, modelName);
@ -326,7 +331,7 @@ Q_SLOT void lpReport::onCheckButton()
}
else
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
}
}
else if ("pushButton_SaveHistory" == str)
@ -335,12 +340,12 @@ Q_SLOT void lpReport::onCheckButton()
return;
if (m_tableModel->rowCount() <= 0)
{
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
return;
}
QString filename = QString("History_%1.csv").arg(QDateTime::currentDateTime().toString("yyyy_MM_dd"));
QString fileTitle = tr("请选择保存文件的路径");
QString fileTitle = tr("请选择保存文件的路径");
QFileDialog *fileDialog = new QFileDialog(NULL, fileTitle, filename);
fileDialog->setWindowTitle("Save As");
fileDialog->setAcceptMode(QFileDialog::AcceptSave);
@ -362,11 +367,11 @@ Q_SLOT void lpReport::onCheckButton()
connect(workerThread, &QSaveCSVThread::finished, workerThread, &QObject::deleteLater);
workerThread->start();
onEventLoop(tr("正在导出数据,请稍等"));
onEventLoop(tr("正在导出数据,请稍等"));
QString strMsg = tr("导出了%1-%2的生产数据").arg(ui.label_Time1_History->text()).arg(ui.label_Time2_History->text());
QString strMsg = tr("导出了%1-%2的生产数据").arg(ui.label_Time1_History->text()).arg(ui.label_Time2_History->text());
SaveLog(strMsg);
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
}
if (fileDialog) {
delete fileDialog;
@ -382,23 +387,23 @@ Q_SLOT void lpReport::onCheckButton()
QApplication::setOverrideCursor(Qt::WaitCursor);
QString m_strLast = ui.label_Time1_warning->text();
QString m_endLast = ui.label_Time2_warning->text();
QString strMsg = tr("查询了%1-%2的日志数据").arg(m_strLast).arg(m_endLast);
QString strMsg = tr("查询了%1-%2的日志数据").arg(m_strLast).arg(m_endLast);
QString strCombox = ui.comboBox_Wandring_Log->currentText();
int mType = 0;
if (strCombox == tr("使用记录查询")) {
if (strCombox == tr("使用记录查询")) {
mType = (int)emTypeUseState;
}
else if (strCombox == tr("报警记录查询")) {
else if (strCombox == tr("报警记录查询")) {
mType = (int)emTypeWaring;
}
else if (strCombox == tr("运行状态查询")) {
else if (strCombox == tr("运行状态查询")) {
mType = (int)emTypeRunState;
}
SaveLog(strMsg);
QFont font;
font.setPixelSize(14);
ui.label_Tab3_Title->setFont(font);
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录").arg(m_strLast).arg(m_endLast);
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录").arg(m_strLast).arg(m_endLast);
ui.label_Tab3_Title->setText(m_Title);
CheckDataWarningByDate(mType, m_strLast, m_endLast);
@ -407,23 +412,23 @@ Q_SLOT void lpReport::onCheckButton()
}
else
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
}
}
else if (str == "pushButton_SaveWaring")
{
if (m_tableWarnModel == NULL)
{
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
return;
}
if (m_tableWarnModel->rowCount() <= 0)
{
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
return;
}
QString filename = QString("WarnMessage_%1.csv").arg(QDateTime::currentDateTime().toString("yyyy_MM_dd"));
QString fileTitle = tr("请选择保存文件的路径");
QString fileTitle = tr("请选择保存文件的路径");
QFileDialog *fileDialog = new QFileDialog(NULL, fileTitle, filename);
fileDialog->setWindowTitle("Save As");
fileDialog->setAcceptMode(QFileDialog::AcceptSave);
@ -444,11 +449,11 @@ Q_SLOT void lpReport::onCheckButton()
connect(workerThread, &QSaveCSVThread::finished, workerThread, &QObject::deleteLater);
workerThread->start();
onEventLoop(tr("正在导出数据,请稍等"));
onEventLoop(tr("正在导出数据,请稍等"));
QString strMsg = tr("导出了%1-%2的日志数据").arg(ui.label_Time1_warning->text()).arg(ui.label_Time2_warning->text());
QString strMsg = tr("导出了%1-%2的日志数据").arg(ui.label_Time1_warning->text()).arg(ui.label_Time2_warning->text());
SaveLog(strMsg);
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
}
if (fileDialog) {
delete fileDialog;
@ -469,13 +474,13 @@ Q_SLOT void lpReport::onCheckButton()
{
if (m_Totaltime.value(strBanci).m_startTime > m_Totaltime.value(strBanci).m_endTime)
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的班次时间是隔夜的,请您重新选择一下当前查询的日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的班次时间是隔夜的,请您重新选择一下当前查询的日期,再查询"));
checkflags = false;
return;
}
else
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新起始日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新起始日期,再查询"));
checkflags = false;
return;
}
@ -485,14 +490,14 @@ Q_SLOT void lpReport::onCheckButton()
{
if (m_startDate_Count.date() > m_endDate_Count.date())
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("您选择的日期不合理,请您重新选择一下当前查询的日期,再查询"));
checkflags = false;
return;
}
}
QString m_strLast = ui.label_Time1_Count->text();
QString m_endLast = ui.label_Time2_Count->text();
QString strMsg = tr("查询了%1-%2的统计数据").arg(ui.label_Time1_Count->text()).arg(ui.label_Time2_Count->text());
QString strMsg = tr("查询了%1-%2的统计数据").arg(ui.label_Time1_Count->text()).arg(ui.label_Time2_Count->text());
SaveLog(strMsg);
QApplication::setOverrideCursor(Qt::WaitCursor);
CheckDataByDate(m_strLast, m_endLast);
@ -501,18 +506,18 @@ Q_SLOT void lpReport::onCheckButton()
}
else
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("正在查询数据,请稍后"));
}
}
else if ("pushButton_SaveCalculate" == str)
{
if (m_CountNumber.size() <= 0)
{
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有数据,请重新查询"));
return;
}
QString filename = QString("Data_%1.csv").arg(QDateTime::currentDateTime().toString("yyyy_MM_dd"));
QString fileTitle = tr("请选择保存文件的路径");
QString fileTitle = tr("请选择保存文件的路径");
QFileDialog *fileDialog = new QFileDialog(NULL, fileTitle, filename);
fileDialog->setWindowTitle("Save As");
fileDialog->setAcceptMode(QFileDialog::AcceptSave);
@ -526,8 +531,8 @@ Q_SLOT void lpReport::onCheckButton()
{
QString path = fileDialog->selectedFiles()[0];
if (SaveDataToCSV(path, m_CountNumber))
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
QString strMsg = tr("导出了%1-%2的统计数据").arg(ui.label_Time1_Count->text()).arg(ui.label_Time2_Count->text());
onMessageBox(QMessageBox::Information, tr("提示"), tr("数据导出完成"));
QString strMsg = tr("导出了%1-%2的统计数据").arg(ui.label_Time1_Count->text()).arg(ui.label_Time2_Count->text());
SaveLog(strMsg);
}
if (fileDialog) {
@ -545,8 +550,8 @@ bool lpReport::onMessageBox(QMessageBox::Icon ntype, QString strTitle, QString s
button = QMessageBox::Cancel;
QMessageBox infobox(ntype, strTitle, strAtl, QMessageBox::Ok | button, NULL);
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);
}
@ -589,14 +594,14 @@ void lpReport::CheckDataHistoryByDate(QString m_strLast, QString m_endLast, QStr
bool lpReport::SaveDataToCSV(QString filePath, QMap<QString, int> &m_mapTable)
{
QFile file(filePath);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))// 追加写入数据
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))// 追加写入数据
return false;
QTextStream out(&file);
QString tableData;
QString m_startStr = m_startDate_Count.toString("yyyy-MM-dd ") + m_startTime.toString("hh:mm:ss");
QString m_endStr = m_endDate_Count.toString("yyyy-MM-dd ") + m_endTime.toString("hh:mm:ss");
out << tr("从%1到%2统计的数据如下").arg(m_startStr).arg(m_endStr) << "\n";
out << tr("序号") << "," << tr("型号") << "," << tr("数量") << "\n";
out << tr("从%1到%2统计的数据如下").arg(m_startStr).arg(m_endStr) << "\n";
out << tr("序号") << "," << tr("型号") << "," << tr("数量") << "\n";
int index = 1;
int sum = 0;
for (QMap<QString, int>::iterator its = m_mapTable.begin(); its != m_mapTable.end(); ++its)
@ -612,9 +617,9 @@ bool lpReport::SaveDataToCSV(QString filePath, QMap<QString, int> &m_mapTable)
{
out << (index++) << "," << QString("NG") << "," << 0 << "\n";
}
out << (index++) << "," << tr("总数") << "," << QString::number(sum) << "\n";
out << tr("时间:") << "," << QDateTime::currentDateTime().toString("yyyy-MM-dd") << "," << QDateTime::currentDateTime().toString("hh:mm:ss") << "\n";
out << tr("用户:") << "," << "username" << "," << "\n";
out << (index++) << "," << tr("总数") << "," << QString::number(sum) << "\n";
out << tr("时间:") << "," << QDateTime::currentDateTime().toString("yyyy-MM-dd") << "," << QDateTime::currentDateTime().toString("hh:mm:ss") << "\n";
out << tr("用户:") << "," << "username" << "," << "\n";
file.close();
return true;
}
@ -631,9 +636,9 @@ void lpReport::CheckDataByDate(QString m_strLast, QString m_endLast)
QProgressDialog progress;
progress.setWindowModality(Qt::ApplicationModal);
progress.setWindowTitle(tr("查询进度"));
progress.setWindowTitle(tr("查询进度"));
progress.setWindowIcon(QIcon(":/image/leaper"));
progress.setLabelText(tr("数据查询中,请稍后....."));
progress.setLabelText(tr("数据查询中,请稍后....."));
progress.setCancelButton(0);
QSqlQuery sql;
QVariantMap m_Value;
@ -676,7 +681,7 @@ QString lpReport::getHistoryCheckString()
QString m_endLast = ui.label_Time2_History->text();
QString modelName = ui.comboBox_Model->currentText();
QString strString;
if (modelName == tr("全部"))
if (modelName == tr("全部"))
strString = QString("select * from wftable where time >'%1' and time <'%2'").arg(m_strLast).arg(m_endLast);
else
strString = QString("select * from wftable where time >'%1' and time <'%2' and model = '%3'").arg(m_strLast).arg(m_endLast).arg(modelName);
@ -702,7 +707,7 @@ Q_SLOT void lpReport::onHistoryButton()
m_PrevNum = 0;
strString = strString + QString(" LIMIT %1 OFFSET %2").arg(limitNum).arg(m_PrevNum);
/*启用线程查询数据 减少界面卡顿*/
/*启用线程查询数据 减少界面卡顿*/
CheckThread *workerThread = new CheckThread(this);
workerThread->setCheckStr(m_pDb, strString);
connect(workerThread, SIGNAL(resultReady(QSqlQuery)), this, SLOT(onUpdateTableViewShow(QSqlQuery)));
@ -711,7 +716,7 @@ Q_SLOT void lpReport::onHistoryButton()
m_totalPage = (m_totlaNum / limitNum);
m_page = ((m_PrevNum) / limitNum) + 1;
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage + 1));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage + 1));
if (m_PrevNum <= 0)
{
m_PrevNum = 0;
@ -734,7 +739,7 @@ Q_SLOT void lpReport::onHistoryButton()
QString strString = getHistoryCheckString();
strString = strString + QString(" LIMIT %1 OFFSET %2").arg(limitNum).arg(m_PrevNum);
/*启用线程查询数据 减少界面卡顿*/
/*启用线程查询数据 减少界面卡顿*/
CheckThread *workerThread = new CheckThread(this);
workerThread->setCheckStr(m_pDb, strString);
connect(workerThread, SIGNAL(resultReady(QSqlQuery)), this, SLOT(onUpdateTableViewShow(QSqlQuery)));
@ -743,7 +748,7 @@ Q_SLOT void lpReport::onHistoryButton()
m_totalPage = (m_totlaNum / limitNum);
m_page = (m_PrevNum + limitNum) / limitNum;
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage + 1));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage + 1));
if ((m_PrevNum + limitNum) >= m_totlaNum)
{
m_PrevNum = m_totlaNum;
@ -767,13 +772,13 @@ void lpReport::cleanHistorycal()
m_pagelog = 0;
m_totalPagelog = 0;
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.Prev_checkShengchang->setDisabled(true);
ui.Next_checkShengchang->setDisabled(true);
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(0));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(0).arg(0));
ui.Prev_checklog->setDisabled(true);
ui.Next_checklog->setDisabled(true);
}
@ -791,9 +796,9 @@ Q_SLOT void lpReport::onSaveCSVDone(int)
Q_SLOT void lpReport::handleResults(QString str)
{
//QString strMsg = "username" + ":" + tr("系统自动定时查询了一次数据完成,目标是清除超期的数据");
//QString strMsg = "username" + ":" + tr("系统自动定时查询了一次数据完成,目标是清除超期的数据");
//m_pCtrl->addLog(strMsg, emTypeRunState);
onShowMessage(tr("系统自动进行清理完成"));
onShowMessage(tr("系统自动进行清理完成"));
}
Q_SLOT void lpReport::onShowMessage(QString str)
{
@ -809,7 +814,7 @@ Q_SLOT void lpReport::onProgressForTsk(QVariantMap m_map)
QString nType = m_map.value("Type").toString();
if (nType == "start")
{
QString strMsg = m_map.value("msg", tr("正在查询数据")).toString();
QString strMsg = m_map.value("msg", tr("正在查询数据")).toString();
m_Progressdlg.setWindowTitle(strMsg);
m_Progressdlg.Start(50, 150),
m_Progressdlg.show();
@ -829,7 +834,7 @@ Q_SLOT void lpReport::handleResultsHistory(QVariantMap Mapstr, QSqlQuery sql)
m_totlaNum = Mapstr.value("sum").toInt();
int nlimit = Mapstr.value("limit").toInt();
int nIndex = Mapstr.value("nIndex").toInt();
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录 共%3条").arg(m_strLast).arg(m_endLast).arg(m_totlaNum);
QString m_Title = tr("起始时间:%1 到 结束时间:%2 的历史记录 共%3条").arg(m_strLast).arg(m_endLast).arg(m_totlaNum);
ui.label_Number->setText(QString::number(m_totlaNum));
QFont font;
font.setPixelSize(14);
@ -849,20 +854,20 @@ Q_SLOT void lpReport::handleResultsHistory(QVariantMap Mapstr, QSqlQuery sql)
m_totlaNum = 0;
m_page = 0;
}
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage));
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(nIndex));
onShowMessage(tr("数据查询完成"));
ui.showPage_Label_Checkdata->setText(tr("第%1页 共%2页").arg(m_page).arg(m_totalPage));
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(nIndex));
onShowMessage(tr("数据查询完成"));
}
Q_SLOT void lpReport::onShowMsg()
{
onMessageBox(QMessageBox::Information, tr("提示"), tr("操作已生效"));
onMessageBox(QMessageBox::Information, tr("提示"), tr("操作已生效"));
}
Q_SLOT void lpReport::handleResultsCount(const QString &result, const QMap<QString, int> *p)
{
reportdlg->ClearData();
reportdlg->setTitle(tr("统计结果 "));
reportdlg->setTitle(tr("统计结果 "));
if (p == NULL) {
m_IsRunCountTsk = false;
return;
@ -870,9 +875,9 @@ Q_SLOT void lpReport::handleResultsCount(const QString &result, const QMap<QStri
reportdlg->SetData(QMap<QString, int>(*p)/*m_CountNumber*/);
if (!p->contains(QString("NG")))
reportdlg->AppendData(QString("NG"), 0, true);
reportdlg->AppendData(tr("总数"), result.toInt(), true);
reportdlg->AppendData(tr("总数"), result.toInt(), true);
reportdlg->UpdateTableView();
onShowMessage(tr("统计完成"));
onShowMessage(tr("统计完成"));
m_IsRunCountTsk = false;
if (p)
delete p;
@ -895,7 +900,7 @@ Q_SLOT void lpReport::onLogButton()
m_PrevNumlog = 0;
QString strString = getLogCheckString();
strString += QString(" LIMIT %1 OFFSET %2 ").arg(limitNum).arg(m_PrevNumlog);
/*启用线程查询数据 减少界面卡顿*/
/*启用线程查询数据 减少界面卡顿*/
CheckThread *workerThread = new CheckThread(this);
workerThread->setCheckStr(m_pDb, strString);
connect(workerThread, SIGNAL(resultReady(QSqlQuery)), this, SLOT(onUpdateTableViewShowlog(QSqlQuery)));
@ -904,7 +909,7 @@ Q_SLOT void lpReport::onLogButton()
m_totalPagelog = (m_totlaNumlog / limitNum);
m_pagelog = ((m_PrevNumlog) / limitNum) + 1;
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog + 1));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog + 1));
if (m_PrevNumlog <= 0)
{
m_PrevNumlog = 0;
@ -927,7 +932,7 @@ Q_SLOT void lpReport::onLogButton()
QString strString = getLogCheckString();
strString += QString(" LIMIT %1 OFFSET %2 ").arg(limitNum).arg(m_PrevNumlog);
/*启用线程查询数据 减少界面卡顿*/
/*启用线程查询数据 减少界面卡顿*/
CheckThread *workerThread = new CheckThread(this);
workerThread->setCheckStr(m_pDb, strString);
connect(workerThread, SIGNAL(resultReady(QSqlQuery)), this, SLOT(onUpdateTableViewShowlog(QSqlQuery)));
@ -936,7 +941,7 @@ Q_SLOT void lpReport::onLogButton()
m_totalPagelog = (m_totlaNumlog / limitNum);
m_pagelog = (m_PrevNumlog + limitNum) / limitNum;
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog + 1));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog + 1));
if ((m_PrevNumlog + limitNum) >= m_totlaNumlog)
{
m_PrevNumlog = m_totlaNumlog;
@ -952,13 +957,13 @@ QString lpReport::getLogCheckString(int nCheckCount/*=0*/)
QString m_endLast = ui.label_Time2_warning->text();
QString strCombox = ui.comboBox_Wandring_Log->currentText();
int mType = 0;
if (strCombox == tr("使用记录查询")) {
if (strCombox == tr("使用记录查询")) {
mType = (int)emTypeUseState;
}
else if (strCombox == tr("报警记录查询")) {
else if (strCombox == tr("报警记录查询")) {
mType = (int)emTypeWaring;
}
else if (strCombox == tr("运行状态查询")) {
else if (strCombox == tr("运行状态查询")) {
mType = (int)emTypeRunState;
}
QVariantMap m_vlaue;
@ -979,29 +984,29 @@ Q_SLOT void lpReport::onUpdateTableViewShow(QSqlQuery sql)
void lpReport::updateModelShowHistory(QSqlQuery &sql)
{
QStandardItemModel *testmodel = new QStandardItemModel;
ui.tableView_checkShengchang->setModel(testmodel);//先将模型插入后在一次性显示 可以提高显示速率
ui.tableView_checkShengchang->setModel(testmodel);//先将模型插入后在一次性显示 可以提高显示速率
ui.tableView_checkShengchang->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui.tableView_checkShengchang->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.tableView_checkShengchang->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//自适应行宽
ui.tableView_checkShengchang->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//自适应行宽
ui.tableView_checkShengchang->horizontalHeader()->setMaximumHeight(100);
if (m_tableModel == NULL)
m_tableModel = new QStandardItemModel;
m_tableModel->clear();
ui.CheckDlg_label_Pic->clear();
m_tableModel->setHorizontalHeaderItem(0, new QStandardItem(tr("日期时间")));
m_tableModel->setHorizontalHeaderItem(1, new QStandardItem(tr("匹配型号")));
m_tableModel->setHorizontalHeaderItem(2, new QStandardItem(tr("相似度")));
m_tableModel->setHorizontalHeaderItem(3, new QStandardItem(tr("消耗时间s")));
m_tableModel->setHorizontalHeaderItem(4, new QStandardItem(tr("直径mm")));
m_tableModel->setHorizontalHeaderItem(5, new QStandardItem(tr("厚度mm")));
m_tableModel->setHorizontalHeaderItem(6, new QStandardItem(tr("缩略图")));
m_tableModel->setHorizontalHeaderItem(0, new QStandardItem(tr("日期时间")));
m_tableModel->setHorizontalHeaderItem(1, new QStandardItem(tr("匹配型号")));
m_tableModel->setHorizontalHeaderItem(2, new QStandardItem(tr("相似度")));
m_tableModel->setHorizontalHeaderItem(3, new QStandardItem(tr("消耗时间s")));
m_tableModel->setHorizontalHeaderItem(4, new QStandardItem(tr("直径mm")));
m_tableModel->setHorizontalHeaderItem(5, new QStandardItem(tr("厚度mm")));
m_tableModel->setHorizontalHeaderItem(6, new QStandardItem(tr("缩略图")));
m_tableModel->setHorizontalHeaderItem(7, new QStandardItem(tr("uid")));
int nIndex = 0;
while (sql.next())
{
/*这里下面是统计查询到的通道对应的产品总数*/
/*这里下面是统计查询到的通道对应的产品总数*/
int uid = sql.value("uid").toInt();
QString time = sql.value("time").toString();
QString model = sql.value("model").toString();
@ -1031,7 +1036,7 @@ void lpReport::updateModelShowHistory(QSqlQuery &sql)
m_tableModel->setItem(nIndex, 7, new QStandardItem(QString("%1").arg(uid)));
nIndex++;
}
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(nIndex));
ui.showNum_Label_Checkdata->setText(tr("共显示%1条记录").arg(nIndex));
ui.tableView_checkShengchang->setModel(m_tableModel);
ui.tableView_checkShengchang->hideColumn(7);
ui.tableView_checkShengchang->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
@ -1068,7 +1073,7 @@ void lpReport::CheckDataWarningByDate(int nType, QString m_strLast, QString m_en
connect(workThread, SIGNAL(resultCount(int)), this, SLOT(onResultCountlog(int)));
connect(workThread, &CheckThread::finished, workThread, &QObject::deleteLater);
workThread->start();
onEventLoop(tr("正在查询记录,请稍等"));
onEventLoop(tr("正在查询记录,请稍等"));
strString = getLogCheckString();
int nlimit = ui.LineNumber_log->text().toInt();
@ -1084,7 +1089,7 @@ void lpReport::CheckDataWarningByDate(int nType, QString m_strLast, QString m_en
connect(workerThread, &CheckThread::finished, workerThread, &QObject::deleteLater);
workerThread->start();
QString m_Title = tr("从%1 到 %2 的记录 共%3条").arg(m_strLast).arg(m_endLast).arg(m_totlaNumlog);
QString m_Title = tr("从%1 到 %2 的记录 共%3条").arg(m_strLast).arg(m_endLast).arg(m_totlaNumlog);
QFont font;
font.setPixelSize(14);
font.setBold(true);
@ -1103,26 +1108,26 @@ void lpReport::CheckDataWarningByDate(int nType, QString m_strLast, QString m_en
m_totlaNumlog = 0;
m_pagelog = 0;
}
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog));
ui.showPage_Label_Checkdata_2->setText(tr("第%1页 共%2页").arg(m_pagelog).arg(m_totalPagelog));
}
void lpReport::updateModelShowLog(QSqlQuery &sql)
{
QStandardItemModel *testmodel = new QStandardItemModel;
ui.tableView_TWarning->setModel(testmodel);//先将模型插入后在一次性显示 可以提高显示速率
ui.tableView_TWarning->setModel(testmodel);//先将模型插入后在一次性显示 可以提高显示速率
ui.tableView_TWarning->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui.tableView_TWarning->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.tableView_TWarning->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//自适应行宽
ui.tableView_TWarning->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);//自适应行宽
if (m_tableWarnModel == NULL)
m_tableWarnModel = new QStandardItemModel;
m_tableWarnModel->clear();
m_tableWarnModel->setHorizontalHeaderItem(0, new QStandardItem(tr("时间")));
m_tableWarnModel->setHorizontalHeaderItem(1, new QStandardItem(tr("信息")));
m_tableWarnModel->setHorizontalHeaderItem(0, new QStandardItem(tr("时间")));
m_tableWarnModel->setHorizontalHeaderItem(1, new QStandardItem(tr("信息")));
int nIndex = 0;
while (sql.next())
{
/*这里下面是统计查询到的通道对应的产品总数*/
/*这里下面是统计查询到的通道对应的产品总数*/
QString time = sql.value("time").toString();
QString message = sql.value("message").toString();
QString classd = sql.value("class").toString();
@ -1130,7 +1135,7 @@ void lpReport::updateModelShowLog(QSqlQuery &sql)
m_tableWarnModel->setItem(nIndex, 1, new QStandardItem(message));
nIndex++;
}
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(nIndex));
ui.showNum_Label_Checkdata_2->setText(tr("共显示%1条记录").arg(nIndex));
ui.tableView_TWarning->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui.tableView_TWarning->setModel(m_tableWarnModel);
delete testmodel;
@ -1166,7 +1171,7 @@ Q_SLOT void lpReport::SlotCombox(int index)
}
else
{
if (str == tr("全天"))
if (str == tr("全天"))
{
QString strTime = nstartTime.toString("hh:mm:ss");
if (m_startDate_Count.date() > m_endDate_Count.date())
@ -1204,7 +1209,7 @@ Q_SLOT void lpReport::SlotCombox(int index)
}
else
{
if (str == tr("全天"))
if (str == tr("全天"))
{
QString strTime = nstartTime.toString("hh:mm:ss");
if (m_startDate_History.date() > m_endDate_History.date())
@ -1265,7 +1270,7 @@ Q_SLOT void lpReport::onTableViewClick(QModelIndex mIndex)
m_value.insert(_CHECK_TYPE_, EMT_CHECK_BY_UID);
QString seletcStr = m_pDb->genCheckStr(m_value);
/*启用线程查询数据 减少界面卡顿*/
/*启用线程查询数据 减少界面卡顿*/
CheckThread *workerThread = new CheckThread(this);
workerThread->setCheckStr(m_pDb, seletcStr);
connect(workerThread, SIGNAL(resultReady(QSqlQuery)), this, SLOT(onSlowPixmap(QSqlQuery)));
@ -1275,7 +1280,7 @@ Q_SLOT void lpReport::onTableViewClick(QModelIndex mIndex)
}
}
}
//初始化UI参数
//初始化UI参数
void lpReport::InitUIParam()
{
m_startDate_History = QDateTime::currentDateTime();
@ -1294,18 +1299,18 @@ void lpReport::InitUIParam()
ui.label_Time2_warning->setText(m_endDate_Warning.toString("yyyy-MM-dd hh:mm:ss"));
ui.comboBox_Banci->clear();
ui.comboBox_Banci->addItem(tr("全天"));
ui.comboBox_Banci->addItem(tr("全天"));
ui.comboBox_Banci->addItems(m_Totaltime.keys());
ui.comboBox_Banci_Calculate->clear();
ui.comboBox_Banci_Calculate->addItem(tr("全天"));
ui.comboBox_Banci_Calculate->addItem(tr("全天"));
ui.comboBox_Banci_Calculate->addItems(m_Totaltime.keys());
ui.comboBox_Wandring_Log->clear();
ui.comboBox_Wandring_Log->addItem(tr("报警记录查询"));
ui.comboBox_Wandring_Log->addItem(tr("运行状态查询"));
ui.comboBox_Wandring_Log->addItem(tr("使用记录查询"));
ui.comboBox_Wandring_Log->addItem(tr("报警记录查询"));
ui.comboBox_Wandring_Log->addItem(tr("运行状态查询"));
ui.comboBox_Wandring_Log->addItem(tr("使用记录查询"));
ui.label_Title->setText(tr("生产数据查询"));
ui.label_Title->setText(tr("生产数据查询"));
ui.stackedWidget->setCurrentIndex(0);
if (m_tableModel)
@ -1317,7 +1322,7 @@ void lpReport::InitUIParam()
ui.label_Number->setText("0");
ui.CheckDlg_label_Pic->clear();
if (reportdlg)
reportdlg->ClearData();
}
@ -1325,7 +1330,7 @@ void lpReport::InitUIParam()
void lpReport::SetModelNames(QStringList models)
{
ui.comboBox_Model->clear();
ui.comboBox_Model->addItem(tr("全部"));
ui.comboBox_Model->addItem(tr("全部"));
if (!models.contains("NG"))
ui.comboBox_Model->addItem(tr("NG"));
ui.comboBox_Model->addItems(models);
@ -1334,4 +1339,83 @@ void lpReport::SetModelNames(QStringList models)
_pCompleter = new QCompleter(models);
_pCompleter->setCaseSensitivity(Qt::CaseInsensitive);
ui.comboBox_Model->setCompleter(_pCompleter);
}
}
void lpReport::SetLanguage(QString strLanguage)
{
QString strDirPath = QString(QCoreApplication::applicationDirPath() + "/language/");
QString translatorFileName = strLanguage;
if (!translatorFileName.isEmpty())
{
if (m_VecTranPtr.size() > 0)
{
while (m_VecTranPtr.size())
{
QTranslator *pVa = m_VecTranPtr.takeFirst();
qApp->removeTranslator(pVa);
delete pVa;
pVa = NULL;
}
}
//if (strLangage == "Chinese")
// return;
QLocale::setDefault(QLocale(translatorFileName));
QString transDir = strDirPath + translatorFileName;
SearchQmFile(transDir);
}
}
void lpReport::SearchQmFile(const QString & strDir)
{
QDir dir(strDir);
if (!dir.exists())
{
return;
}
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
dir.setSorting(QDir::DirsFirst); // 文件夹优先
// 转换成一个List
QFileInfoList list = dir.entryInfoList();
if (list.size() < 1)
{
return;
}
int i = 0;
do
{
QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName();
// 如果是文件夹
bool bisDir = fileInfo.isDir();
if (bisDir)
{
SearchQmFile(fileInfo.filePath());
}
else
{
bool bQm = fileInfo.fileName().endsWith(".qm");
SetTranslator(fileInfo.filePath());
}
i++;
} while (i < list.size());
}
void lpReport::SetTranslator(const QString strPath)
{
if (strPath.isEmpty())
{
return;
}
QTranslator *pTrans = new QTranslator;
if (pTrans->load(strPath)) // 如果加载成功
{
qApp->installTranslator(pTrans);
m_VecTranPtr.append(pTrans);
}
else
{
delete pTrans;
pTrans = NULL;
}
}

@ -21,6 +21,9 @@
#include <QMessageBox>
#include "DetectDataDB.h"
#include <QSettings>
#include <QTranslator>
class lpReport : public QMainWindow
{
Q_OBJECT
@ -32,6 +35,11 @@ public:
void onInitUI();
protected:
//国际化
void SetLanguage(QString strLangage);
void SearchQmFile(const QString & strDir);
void SetTranslator(const QString strPath);
virtual void timerEvent(QTimerEvent *event);
Q_SLOT void SlotEditTime();
Q_SLOT void onCheckButton();
@ -80,6 +88,8 @@ private:
class QGridLayout *m_GridLayout{ nullptr };
class QVBoxLayout *Hbox{ nullptr };
class QWidget *m_countwidget{ nullptr };
QVector<QTranslator* > m_VecTranPtr;//国际化语言包管理
protected:
QDateTime m_startDate_Count, m_endDate_Count;
QDateTime m_startDate_History, m_endDate_History;

@ -1,4 +1,4 @@
#include "lpReport.h"
#include "lpReport.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])

@ -858,8 +858,8 @@ background-color: rgb(170, 170, 127);</string>
<addaction name="action_Login"/>
<addaction name="action_userManager"/>
<addaction name="action_modelmgr"/>
<addaction name="action_checkdata"/>
<addaction name="action_connect_mode"/>
<addaction name="action_checkdata"/>
<addaction name="separator"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>

@ -729,7 +729,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="QModelMgrDlg.ui" line="217"/>
<source></source>
<translation>Wheel information</translation>
<translation>Wheel information:</translation>
</message>
<message>
<location filename="QModelMgrDlg.ui" line="278"/>
@ -800,7 +800,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="QModelMgrDlg.ui" line="556"/>
<source></source>
<translation>Train </translation>
<translation>Train</translation>
</message>
<message>
<location filename="QModelMgrDlg.ui" line="575"/>
@ -1686,17 +1686,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="QTimeMgrDlg.ui" line="46"/>
<source></source>
<translation>Add time</translation>
<translation>Add</translation>
</message>
<message>
<location filename="QTimeMgrDlg.ui" line="64"/>
<source></source>
<translation>Delete time</translation>
<translation>Delete</translation>
</message>
<message>
<location filename="QTimeMgrDlg.ui" line="82"/>
<source></source>
<translation>Modify time</translation>
<translation>Modify</translation>
</message>
<message>
<location filename="QTimeMgrDlg.cpp" line="22"/>
@ -1937,17 +1937,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/tpMain/qworkmgrui.ui" line="484"/>
<source></source>
<translation>Detect by diameter</translation>
<translation>By diameter</translation>
</message>
<message>
<location filename="../../src/tpMain/qworkmgrui.ui" line="502"/>
<source></source>
<translation>Detect by thickness</translation>
<translation>By thickness</translation>
</message>
<message>
<location filename="../../src/tpMain/qworkmgrui.ui" line="520"/>
<source></source>
<translation>Sending Model Library</translation>
<translation>Send Models</translation>
</message>
<message>
<location filename="../../src/tpMain/qworkmgrui.cpp" line="30"/>
@ -2222,7 +2222,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="lpMainWin.ui" line="886"/>
<source></source>
<translation>Data</translation>
<translation>History</translation>
</message>
<message>
<location filename="lpMainWin.ui" line="900"/>
@ -2426,13 +2426,13 @@ p, li { white-space: pre-wrap; }
<location filename="lpMainWin.cpp" line="584"/>
<location filename="lpMainWin.cpp" line="601"/>
<source></source>
<translation>The current exposure time does not recognize the hub.</translation>
<translation>The current exposure time does not recognize the hub</translation>
</message>
<message>
<location filename="lpMainWin.cpp" line="566"/>
<location filename="lpMainWin.cpp" line="597"/>
<source>5</source>
<translation>After adjusting the exposure time for 5 times, the wheel hub is still not recognized</translation>
<translation>After adjusting the exposure time for 5 times, the wheel hub is still not recognized</translation>
</message>
<message>
<location filename="lpMainWin.cpp" line="906"/>

Loading…
Cancel
Save