#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"); }