Files
gcs-nf/App/ComponentUI/Inputter/Inputter.cpp
T
2020-05-19 19:02:32 +08:00

211 lines
4.0 KiB
C++

#include "Inputter.h"
#include "ui_Inputter.h"
Inputter::Inputter(QWidget *parent) :
QWidget(parent),
ui(new Ui::Inputter)
{
ui->setupUi(this);
//load qss
QFile file(":/qss/Inputter.qss");
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet = filetext.readAll();
this->setStyleSheet(stylesheet);
file.close();
curentStr = "";
currentValue = 0;
inputType = 0;
DecimalPlaces = -1;
ui->lineEdit->setText(curentStr);
ui->lineEdit->setReadOnly(true);
}
Inputter::~Inputter()
{
delete ui;
}
bool Inputter::event(QEvent *event)
{
if(event->type() == QEvent::Leave)
{
this->close();
}
return QWidget::event(event);
}
void Inputter::setInputType(int Type)
{
inputType = Type;
}
void Inputter::setInitValue(QVariant value)
{
curentStr = value.toString();
ui->lineEdit->setText(curentStr);
}
void Inputter::setDecimalPlaces(int value)
{
DecimalPlaces = value;
}
void Inputter::on_NumberClicked(QString str)
{
curentStr.append(str);
ui->lineEdit->setText(curentStr);
}
void Inputter::on_pushButton_1_clicked()
{
on_NumberClicked(ui->pushButton_1->text());
}
void Inputter::on_pushButton_2_clicked()
{
on_NumberClicked(ui->pushButton_2->text());
}
void Inputter::on_pushButton_3_clicked()
{
on_NumberClicked(ui->pushButton_3->text());
}
void Inputter::on_pushButton_4_clicked()
{
on_NumberClicked(ui->pushButton_4->text());
}
void Inputter::on_pushButton_5_clicked()
{
on_NumberClicked(ui->pushButton_5->text());
}
void Inputter::on_pushButton_6_clicked()
{
on_NumberClicked(ui->pushButton_6->text());
}
void Inputter::on_pushButton_7_clicked()
{
on_NumberClicked(ui->pushButton_7->text());
}
void Inputter::on_pushButton_8_clicked()
{
on_NumberClicked(ui->pushButton_8->text());
}
void Inputter::on_pushButton_9_clicked()
{
on_NumberClicked(ui->pushButton_9->text());
}
void Inputter::on_pushButton_point_clicked()
{
if(inputType == 0)
{
if(curentStr.size()>0)
{
if(curentStr.contains('.'))
{
qDebug() << "it is illegal string";
}
else
{
if(DecimalPlaces != 0)
{
on_NumberClicked(ui->pushButton_point->text());
}
}
}
else
{
qDebug() << "point can't be set in first char";
}
}
else
{
on_NumberClicked(ui->pushButton_point->text());
}
}
void Inputter::on_pushButton_0_clicked()
{
on_NumberClicked(ui->pushButton_0->text());
}
void Inputter::on_pushButton_del_clicked()
{
curentStr = curentStr.mid(0,curentStr.size() - 1);
ui->lineEdit->setText(curentStr);
}
void Inputter::on_pushButton_cancel_clicked()
{
this->close();
}
void Inputter::on_pushButton_ok_clicked()
{
if(inputType == 0)
{
while(curentStr.at(0) == '0')
{
if(curentStr.contains('.'))
{
if(curentStr.at(1) == '.')
{
break;
}
else
{
curentStr = curentStr.mid(1);
}
}
else
{
if(curentStr.size() > 1)
{
curentStr = curentStr.mid(1);
}
else
{
break;
}
}
}
if(curentStr.at(curentStr.size()-1) == '.')
{
curentStr.append('0');
}
//判断位数
curentStr = QString::number(curentStr.toDouble(),'f',DecimalPlaces);
}
else
{
//mac模式
}
currentValue = curentStr;
qDebug() << currentValue;
emit confirmValue(currentValue);
this->deleteLater();
this->close();
}
void Inputter::on_pushButton_nan_clicked()
{
curentStr = "nan";
ui->lineEdit->setText(curentStr);
}