587 lines
9.2 KiB
C++
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");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|