Files
gcs-nf/App/ComponentUI/CharInputter/CharInputter.cpp
T
2020-08-11 16:48:15 +08:00

587 lines
9.2 KiB
C++

#include "CharInputter.h"
#include "ui_CharInputter.h"
CharInputter::CharInputter(QWidget *parent) :
QWidget(parent),
ui(new Ui::CharInputter)
{
ui->setupUi(this);
//load qss
QFile file(":/qss/CharInputter.qss");
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet = filetext.readAll();
this->setStyleSheet(stylesheet);
file.close();
ui->lineEdit->setText(curentStr);
ui->lineEdit->setReadOnly(true);
ui->pushButton_Caps->setProperty("CapsSelect",false);
ui->pushButton_Caps->style()->unpolish(ui->pushButton_Caps);
ui->pushButton_Caps->style()->polish(ui->pushButton_Caps);
setLower();
DoubleClickTimer = new QTimer(this);
DoubleClickTimer->setInterval(200);//0.2s之内再点击,那就相当于双击
connect(DoubleClickTimer,SIGNAL(timeout()),
this,SLOT(DoubleClickTimeout()));
}
CharInputter::~CharInputter()
{
if(DoubleClickTimer)
{
if(DoubleClickTimer->isActive())
{
DoubleClickTimer->stop();
}
delete DoubleClickTimer;
}
delete ui;
}
bool CharInputter::event(QEvent *event)
{
if(event->type() == QEvent::Leave)
{
this->close();
}
return QWidget::event(event);
}
void CharInputter::setInputType(int Type)
{
inputType = Type;
}
void CharInputter::setInitValue(QVariant value)
{
curentStr = value.toString();
ui->lineEdit->setText(curentStr);
}
void CharInputter::on_Clicked(QString str)
{
curentStr.append(str);
ui->lineEdit->setText(curentStr);
}
void CharInputter::DoubleClickTimeout()
{
DoubleClickTimer->stop();
}
void CharInputter::on_pushButton_1_clicked()
{
on_Clicked("1");
}
void CharInputter::on_pushButton_2_clicked()
{
on_Clicked("2");
}
void CharInputter::on_pushButton_3_clicked()
{
on_Clicked("3");
}
void CharInputter::on_pushButton_4_clicked()
{
on_Clicked("4");
}
void CharInputter::on_pushButton_5_clicked()
{
on_Clicked("5");
}
void CharInputter::on_pushButton_6_clicked()
{
on_Clicked("6");
}
void CharInputter::on_pushButton_7_clicked()
{
on_Clicked("7");
}
void CharInputter::on_pushButton_8_clicked()
{
on_Clicked("8");
}
void CharInputter::on_pushButton_9_clicked()
{
on_Clicked("9");
}
void CharInputter::on_pushButton_0_clicked()
{
on_Clicked("0");
}
void CharInputter::on_pushButton_Q_clicked()
{
if(isCapsLock)
{
on_Clicked("Q");
}
else
{
on_Clicked("q");
}
}
void CharInputter::on_pushButton_W_clicked()
{
if(isCapsLock)
{
on_Clicked("W");
}
else
{
on_Clicked("w");
}
}
void CharInputter::on_pushButton_E_clicked()
{
if(isCapsLock)
{
on_Clicked("E");
}
else
{
on_Clicked("e");
}
}
void CharInputter::on_pushButton_R_clicked()
{
if(isCapsLock)
{
on_Clicked("R");
}
else
{
on_Clicked("r");
}
}
void CharInputter::on_pushButton_T_clicked()
{
if(isCapsLock)
{
on_Clicked("T");
}
else
{
on_Clicked("t");
}
}
void CharInputter::on_pushButton_Y_clicked()
{
if(isCapsLock)
{
on_Clicked("Y");
}
else
{
on_Clicked("y");
}
}
void CharInputter::on_pushButton_U_clicked()
{
if(isCapsLock)
{
on_Clicked("U");
}
else
{
on_Clicked("u");
}
}
void CharInputter::on_pushButton_I_clicked()
{
if(isCapsLock)
{
on_Clicked("I");
}
else
{
on_Clicked("i");
}
}
void CharInputter::on_pushButton_O_clicked()
{
if(isCapsLock)
{
on_Clicked("O");
}
else
{
on_Clicked("o");
}
}
void CharInputter::on_pushButton_P_clicked()
{
if(isCapsLock)
{
on_Clicked("P");
}
else
{
on_Clicked("p");
}
}
void CharInputter::on_pushButton_A_clicked()
{
if(isCapsLock)
{
on_Clicked("A");
}
else
{
on_Clicked("a");
}
}
void CharInputter::on_pushButton_S_clicked()
{
if(isCapsLock)
{
on_Clicked("S");
}
else
{
on_Clicked("s");
}
}
void CharInputter::on_pushButton_D_clicked()
{
if(isCapsLock)
{
on_Clicked("D");
}
else
{
on_Clicked("d");
}
}
void CharInputter::on_pushButton_F_clicked()
{
if(isCapsLock)
{
on_Clicked("F");
}
else
{
on_Clicked("f");
}
}
void CharInputter::on_pushButton_G_clicked()
{
if(isCapsLock)
{
on_Clicked("G");
}
else
{
on_Clicked("g");
}
}
void CharInputter::on_pushButton_H_clicked()
{
if(isCapsLock)
{
on_Clicked("H");
}
else
{
on_Clicked("h");
}
}
void CharInputter::on_pushButton_J_clicked()
{
if(isCapsLock)
{
on_Clicked("J");
}
else
{
on_Clicked("j");
}
}
void CharInputter::on_pushButton_K_clicked()
{
if(isCapsLock)
{
on_Clicked("K");
}
else
{
on_Clicked("k");
}
}
void CharInputter::on_pushButton_L_clicked()
{
if(isCapsLock)
{
on_Clicked("L");
}
else
{
on_Clicked("l");
}
}
void CharInputter::on_pushButton_Z_clicked()
{
if(isCapsLock)
{
on_Clicked("Z");
}
else
{
on_Clicked("z");
}
}
void CharInputter::on_pushButton_X_clicked()
{
if(isCapsLock)
{
on_Clicked("X");
}
else
{
on_Clicked("x");
}
}
void CharInputter::on_pushButton_C_clicked()
{
if(isCapsLock)
{
on_Clicked("C");
}
else
{
on_Clicked("c");
}
}
void CharInputter::on_pushButton_V_clicked()
{
if(isCapsLock)
{
on_Clicked("V");
}
else
{
on_Clicked("v");
}
}
void CharInputter::on_pushButton_B_clicked()
{
if(isCapsLock)
{
on_Clicked("B");
}
else
{
on_Clicked("b");
}
}
void CharInputter::on_pushButton_N_clicked()
{
if(isCapsLock)
{
on_Clicked("N");
}
else
{
on_Clicked("n");
}
}
void CharInputter::on_pushButton_M_clicked()
{
if(isCapsLock)
{
on_Clicked("M");
}
else
{
on_Clicked("m");
}
}
void CharInputter::on_pushButton_Line_clicked()
{
on_Clicked("-");
}
void CharInputter::on_pushButton_Enter_clicked()
{
emit confirmValue(ui->lineEdit->text());
this->deleteLater();
this->close();
}
void CharInputter::on_pushButton_Delete_clicked()
{
curentStr = curentStr.mid(0,curentStr.size() - 1);
ui->lineEdit->setText(curentStr);
if(DoubleClickTimer)
{
if(DoubleClickTimer->isActive())
{
curentStr.clear();
ui->lineEdit->clear();
DoubleClickTimer->stop();
}
else
{
DoubleClickTimer->start();
}
}
}
void CharInputter::on_pushButton_Space_clicked()
{
on_Clicked(" ");
}
void CharInputter::on_pushButton_Caps_clicked()
{
isCapsLock = (isCapsLock)?(false):(true);
ui->pushButton_Caps->setProperty("CapsSelect",isCapsLock);
ui->pushButton_Caps->style()->unpolish(ui->pushButton_Caps);
ui->pushButton_Caps->style()->polish(ui->pushButton_Caps);
if(isCapsLock)
{
setUpper();
}
else
{
setLower();
}
}
void CharInputter::setUpper(void)
{
ui->pushButton_A->setText("A");
ui->pushButton_B->setText("B");
ui->pushButton_C->setText("C");
ui->pushButton_D->setText("D");
ui->pushButton_E->setText("E");
ui->pushButton_F->setText("F");
ui->pushButton_G->setText("G");
ui->pushButton_H->setText("H");
ui->pushButton_I->setText("I");
ui->pushButton_J->setText("J");
ui->pushButton_K->setText("K");
ui->pushButton_L->setText("L");
ui->pushButton_M->setText("M");
ui->pushButton_N->setText("N");
ui->pushButton_O->setText("O");
ui->pushButton_P->setText("P");
ui->pushButton_Q->setText("Q");
ui->pushButton_R->setText("R");
ui->pushButton_S->setText("S");
ui->pushButton_T->setText("T");
ui->pushButton_U->setText("U");
ui->pushButton_V->setText("V");
ui->pushButton_W->setText("W");
ui->pushButton_X->setText("X");
ui->pushButton_Y->setText("Y");
ui->pushButton_Z->setText("Z");
}
void CharInputter::setLower(void)
{
ui->pushButton_A->setText("a");
ui->pushButton_B->setText("b");
ui->pushButton_C->setText("c");
ui->pushButton_D->setText("d");
ui->pushButton_E->setText("e");
ui->pushButton_F->setText("f");
ui->pushButton_G->setText("g");
ui->pushButton_H->setText("h");
ui->pushButton_I->setText("i");
ui->pushButton_J->setText("j");
ui->pushButton_K->setText("k");
ui->pushButton_L->setText("l");
ui->pushButton_M->setText("m");
ui->pushButton_N->setText("n");
ui->pushButton_O->setText("o");
ui->pushButton_P->setText("p");
ui->pushButton_Q->setText("q");
ui->pushButton_R->setText("r");
ui->pushButton_S->setText("s");
ui->pushButton_T->setText("t");
ui->pushButton_U->setText("u");
ui->pushButton_V->setText("v");
ui->pushButton_W->setText("w");
ui->pushButton_X->setText("x");
ui->pushButton_Y->setText("y");
ui->pushButton_Z->setText("z");
}