245 lines
7.5 KiB
C++
245 lines
7.5 KiB
C++
#include "vvodms.h"
|
|
#include "ui_vvodms.h"
|
|
|
|
vvodMs::vvodMs(QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::vvodMs)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
this->setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
((Widget*)parent)->changeOpenWidget(this);
|
|
|
|
int i;
|
|
|
|
for (i=0; i<80; i++) localLE[i] = new QLineEdit(this);
|
|
for (i=0; i<6; i++)
|
|
{
|
|
localLE[i*8] ->setGeometry(30, 140+20*i, 31, 20);
|
|
localLE[i*8+1]->setGeometry(90, 140+20*i, 31, 20);
|
|
localLE[i*8+2]->setGeometry(160, 140+20*i, 31, 20);
|
|
localLE[i*8+3]->setGeometry(220, 140+20*i, 31, 20);
|
|
localLE[i*8+4]->setGeometry(320, 140+20*i, 31, 20);
|
|
localLE[i*8+5]->setGeometry(380, 140+20*i, 31, 20);
|
|
localLE[i*8+6]->setGeometry(440, 140+20*i, 31, 20);
|
|
localLE[i*8+7]->setGeometry(500, 140+20*i, 31, 20);
|
|
}
|
|
for (i=0; i<4; i++)
|
|
{
|
|
localLE[i*8+48] ->setGeometry(30, 280+20*i, 31, 20);
|
|
localLE[i*8+48+1]->setGeometry(90, 280+20*i, 31, 20);
|
|
localLE[i*8+48+2]->setGeometry(160, 280+20*i, 31, 20);
|
|
localLE[i*8+48+3]->setGeometry(220, 280+20*i, 31, 20);
|
|
localLE[i*8+48+4]->setGeometry(320, 280+20*i, 31, 20);
|
|
localLE[i*8+48+5]->setGeometry(380, 280+20*i, 31, 20);
|
|
localLE[i*8+48+6]->setGeometry(440, 280+20*i, 31, 20);
|
|
localLE[i*8+48+7]->setGeometry(500, 280+20*i, 31, 20);
|
|
}
|
|
for (i=76; i<80; i++) localLE[i]->hide();
|
|
localLE[52]->setEnabled(false);
|
|
localLE[56]->setEnabled(false);
|
|
localLE[60]->setEnabled(false);
|
|
localLE[64]->setEnabled(false);
|
|
localLE[68]->setEnabled(false);
|
|
localLE[72]->setEnabled(false);
|
|
|
|
|
|
setTabOrder(ui->lineEdit_6, localLE[0]);
|
|
for (i=1;i<76;i++) setTabOrder(localLE[i-1], localLE[i]);
|
|
setTabOrder(localLE[75], ui->lineEdit_103);
|
|
setTabOrder(ui->lineEdit_103, ui->lineEdit_98);
|
|
|
|
int n=0;
|
|
|
|
meteoSr = ((Widget*)parent)->metSr;
|
|
// "ìåòåî-11" ïðîïóñêàåì, íîìåð çîíû
|
|
ui->lineEdit->setText(meteoSr.mid(0, 2));
|
|
// äåíü
|
|
ui->lineEdit_2->setText(meteoSr.mid(2,2));
|
|
// âðåìÿ
|
|
n = meteoSr.mid(4, 3).toInt();
|
|
ui->lineEdit_3->setText(QString::number(n)+"0");
|
|
// âûñîòà
|
|
n = meteoSr.mid(7, 4).toInt();
|
|
ui->lineEdit_4->setText(QString::number(n));
|
|
// Îòêë. äàâëåíèÿ
|
|
n = meteoSr.mid(11, 3).toInt();
|
|
if ( n>499) n = 500 - n;
|
|
ui->lineEdit_5->setText(QString::number(n));
|
|
// Îòêë. òåìïåðàòóðû
|
|
n = meteoSr.mid(14,2).toInt();
|
|
if (n>49) n = 50-n;
|
|
ui->lineEdit_6->setText(QString::number(n));
|
|
// ñòàíäàðòíûé íàáîð: îòêë. äàâëåíèÿ, òåìï, óãîë âåòðà, ñêîð. âåòðà
|
|
for (i=0; i<13; i++)
|
|
{
|
|
localLE[i*4]->setText(meteoSr.mid(16+i*8, 2));
|
|
n = meteoSr.mid(18+i*8, 2).toInt();
|
|
if (n>49) n = 50-n;
|
|
localLE[i*4+1]->setText(QString::number(n));
|
|
localLE[i*4+2]->setText(meteoSr.mid(20+i*8, 2));
|
|
localLE[i*4+3]->setText(meteoSr.mid(22+i*8, 2));
|
|
}
|
|
// äëÿ âåðõíèõ çîí íåò îòêë. äàâëåíèÿ - ïðèíèìàåòñÿ 1%
|
|
for (int i=13; i<19; i++)
|
|
{
|
|
n = meteoSr.mid(120+(i-13)*6, 2).toInt();
|
|
if (n>49) n = 50-n;
|
|
localLE[i*4+1]->setText(QString::number(n));
|
|
localLE[i*4+2]->setText(meteoSr.mid(122+(i-13)*6, 2));
|
|
localLE[i*4+3]->setText(meteoSr.mid(124+(i-13)*6, 2));
|
|
|
|
}
|
|
// âûñîòû òåìï. è âåòðîâîãî çîíäèðîâàíèÿ
|
|
ui->lineEdit_103->setText(meteoSr.right(4).left(2)+"00");
|
|
ui->lineEdit_98->setText(meteoSr.right(2)+"00");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
vvodMs::~vvodMs()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void vvodMs::on_pushButton_2_clicked()
|
|
{
|
|
close();
|
|
}
|
|
|
|
void vvodMs::on_pushButton_clicked()
|
|
{
|
|
QString str;
|
|
meteoSr.clear();
|
|
int tmp, tmp1;
|
|
|
|
// str.append(QString::fromLocal8Bit("Ìåòåî-11"));
|
|
// íîìåð ñòàíöèè
|
|
tmp = ui->lineEdit->text().toInt();
|
|
if (tmp<0) tmp=0; else if (tmp>99) tmp=99;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
// äåíü ÷àñ ìèíóòû
|
|
tmp = ui->lineEdit_2->text().toInt();
|
|
if (tmp<0) tmp =0; else if (tmp>31) tmp=31;
|
|
str.append(QString::number(tmp));
|
|
tmp = ui->lineEdit_3->text().toInt();
|
|
if (tmp<0) tmp =0 ; else if (tmp>2359) tmp = 2359;
|
|
tmp1 = tmp / 100;
|
|
if (tmp1<10) str.append(QString("0"));
|
|
tmp1 = tmp / 10;
|
|
str.append(QString::number(tmp1));
|
|
// str.append(QString("-"));
|
|
// 3 ãðóïïà
|
|
tmp = ui->lineEdit_4->text().toInt();
|
|
if (tmp<0) tmp =0 ; else if (tmp>9999) tmp = 9999;
|
|
if (tmp<1000) str.append(QString("0"));
|
|
if (tmp<100) str.append(QString("0"));
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
//4 ãðóïïà
|
|
// ìì ðò ñò
|
|
tmp = ui->lineEdit_5->text().toInt();
|
|
if (tmp<-99) tmp=-99; else if ( tmp>99) tmp = 99;
|
|
if (tmp<0) str.append(QString("5")); else str.append(QString("0"));
|
|
tmp = abs(tmp);
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// òåìïåðàòóðà
|
|
tmp = ui->lineEdit_6->text().toInt();
|
|
if (tmp<-49) tmp = -49; else if (tmp>49) tmp = 49;
|
|
if (tmp<0) tmp = abs(tmp)+50;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
// 5,6 è ïîñëåäóþùèå
|
|
|
|
// QString nS[19] = {"02", "04", "08", "12", "16", "20", "24", "30", "40", "50", "60", "80",
|
|
// "10", "12", "14", "18", "22", "26", "30"};
|
|
|
|
|
|
for (int i=0; i<13; i++)
|
|
{
|
|
// str.append(nS[i]);
|
|
|
|
tmp = localLE[i*4]->text().toInt();
|
|
if (tmp<0) tmp = 0; else if (tmp>99) tmp = 99;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
|
|
tmp = localLE[i*4+1]->text().toInt();
|
|
if (tmp<-49) tmp = -49; else if (tmp>49) tmp = 49;
|
|
if (tmp<0) tmp = abs(tmp)+50;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = localLE[i*4+2]->text().toInt();
|
|
if (tmp<0) tmp =0; else if (tmp>59) tmp = 59;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = localLE[i*4+3]->text().toInt();
|
|
if (tmp<0) tmp = 0; else if (tmp>99) tmp = 99;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
|
|
|
|
}
|
|
|
|
for (int i=13; i<19; i++)
|
|
{
|
|
// str.append(nS[i]);
|
|
// str.append(QString("01"));
|
|
// str.append(QString("-"));
|
|
tmp = localLE[i*4+1]->text().toInt();
|
|
if (tmp<-49) tmp = -49; else if (tmp>49) tmp = 49;
|
|
if (tmp<0) tmp = abs(tmp)+50;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = localLE[i*4+2]->text().toInt();
|
|
if (tmp<0) tmp =0; else if (tmp>59) tmp = 59;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = localLE[i*4+3]->text().toInt();
|
|
if (tmp<0) tmp = 0; else if (tmp>99) tmp = 99;
|
|
if (tmp<10) str.append(QString("0"));
|
|
str.append(QString::number(tmp));
|
|
// str.append(QString("-"));
|
|
|
|
}
|
|
|
|
// 103 è 98 íà ôîðìå ñòîÿò íå ïî ïîðÿäêó, ïîýòîìó 103 íèæíÿÿ âûñîòà, 98 - âåðõíÿÿ âûñîòà
|
|
|
|
tmp = ui->lineEdit_103->text().toInt();
|
|
if (tmp<0) tmp = 0; else if (tmp>9999) tmp = 9999;
|
|
tmp = tmp/100;
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = ui->lineEdit_98->text().toInt();
|
|
if (tmp<0) tmp = 0; else if (tmp>9999) tmp = 9999;
|
|
tmp = tmp/100;
|
|
str.append(QString::number(tmp));
|
|
|
|
tmp = str.length();
|
|
|
|
((Widget*)parent())->metSr = str;
|
|
((Widget*)parent())->writeFile();
|
|
close();
|
|
}
|
|
|
|
void vvodMs::closeEvent(QCloseEvent *event)
|
|
{
|
|
((Widget*)parent())->clearOpenWidget();
|
|
event->accept();
|
|
}
|