PlotterHMI/main.cpp
huahaiyan 3ce55cebbd 20240308
1、梳理代码,修改绘制会绘制两次的bug;
2、增加正向旋转功能,线宽设置功能;
3、测试压缩算法,完成;
2024-03-08 16:33:05 +08:00

124 lines
3.6 KiB
C++

#include <QApplication>
#include <QtConcurrent>
#define _IN_MAIN_CPP
#include "main.h"
#include "mainwindow.h"
QString switchLanguage(int language,QDir appPath)
{
QString languagePath;
switch (language)
{
case chinese://中文
languagePath = appPath.path() + appPath.separator() + "chinese.qm";
break;
case english://英文
languagePath = appPath.path() + appPath.separator() + "english.qm";
break;
default://中文
languagePath = appPath.path() + appPath.separator() + "chinese.qm";
break;
}
return languagePath;
}
int main(int argc,char *argv[])
{
QApplication app(argc, argv);
//支持中文编码
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
//下位机通讯
//上次所连接机器的IP
QDir apppath(qApp->applicationDirPath());
QString configfile;
configfile = apppath.path() + apppath.separator() + "config.ini";
QSettings settings(configfile, QSettings::IniFormat);
QString localIp = "192.168.16.41";
quint16 localPort = 5001;
QFile iniFile(configfile);
if(!iniFile.exists())//配置文件不存在
{
settings.setValue("Local/ip","192.168.16.41");
settings.setValue("Local/port",5001);
settings.setValue("DrawSet/rotate90",0);//是否正向旋转90度
settings.setValue("DrawSet/vecfont",0);//是否使用矢量字体
settings.setValue("DrawSet/linewidth",2);//线宽
settings.setValue("DrawSet/paperwidth",2400);//纸张宽度
settings.setValue("DrawSet/rightmargin",0);//右边距
settings.setValue("DrawSet/markmargin",20);//马克间距
settings.setValue("DrawSet/buttmargin",100);//对接符间距
}
else
{
//本地IP和端口
localIp = settings.value("Local/ip").toString();
localPort = settings.value("Local/port").toInt();
}
g_machineList.clear();
int num = 0;
for(int i = 1; i <= MACHINE_NUM; i++)
{
QString str = "MachineNo" + QString::number(i);
QString strKey = str + "/name";
bool bl = settings.contains(strKey);
if(bl == true)
{
num++;
//建立连接
QString mcIp = settings.value(str+"/ip").toString();
quint16 mcPort = settings.value(str+"/port").toInt();
QString mcName = settings.value(str+"/name").toString();
Machine *pMachine = new Machine(); //建立连接
pMachine->setIpAndPort(mcName,mcIp,mcPort,localIp,localPort);//设置IP和端口
pMachine->startCommunication();
McPrintInfo mcf;
mcf.m_mcNum = num;
mcf.m_mcName = mcName;
mcf.m_ip = mcIp;
mcf.m_port = mcPort;
pMachine->m_mcPrintInfo = mcf;
g_machineList.append(pMachine);
}
}
//多语言翻译
int language = 0;
language = settings.value("HMI/language").toInt();
QString languageFile = switchLanguage(language,apppath);
g_pTranslator = new QTranslator();
g_pTranslator->load(languageFile);
qApp->installTranslator(g_pTranslator);
MainWindow mainWi;
mainWi.initAllWinForm();
mainWi.show();
#if(0)
#if(1)
//有机器连接时才加载自动绘图目录
if(machineList.size() > 0)
{
mainWi.loadAutoPrintDirFiles();
}
#else
if(machineList.size() > 0)
{
QtConcurrent::run(&mainWi, &MainWindow::loadAutoPrintDirFiles);//并发线程的使用,为了避免同时加载窗体和加载文件时的窗体卡顿
}
#endif
#endif
app.exec();
return 0;
}