#include "keyboardendialog.h"
#include "ui_keyboardendialog.h"
keyboardEnDialog::keyboardEnDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::keyboardEnDialog)
{
ui->setupUi(this);
initValue("");
init();
}
keyboardEnDialog::keyboardEnDialog(QString s, QWidget *parent) :
QDialog(parent),
ui(new Ui::keyboardEnDialog)
{
ui->setupUi(this);
initValue(s);
init();
}
keyboardEnDialog::~keyboardEnDialog()
{
delete ui;
}
void keyboardEnDialog::btn_clicked()
{
QPushButton *btn = (QPushButton *)sender();
if(btn == ui->pb_close){
this->reject();
return ;
}
if(btn == ui->pb_enter)
{
this->accept();
return ;
}
if(btn == ui->pb_delete)
{
delOneValue();
return ;
}
if(btn == ui->pb_blank)
{
addChar(" ");
return ;
}
if(btn == ui->pb_Caps)
{
switchsmallOrletter();
return ;
}
QString objectName = btn->text();
addChar(objectName);
}
void keyboardEnDialog::init()
{
// this->setWindowFlags(Qt::FramelessWindowHint);
// this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
setWindowModality(Qt::WindowModal);//半阻塞模式
QList<QPushButton *> btn = this->findChildren<QPushButton *>();
foreach (QPushButton * b, btn) {
connect(b, SIGNAL(clicked()), this, SLOT(btn_clicked()));
}
}
void keyboardEnDialog::addChar(QString s)
{
keyboard::addChar(s);
ui->lineEdit->setText(value);
}
void keyboardEnDialog::delOneValue()
{
keyboard::delOneValue();
ui->lineEdit->setText(value);
}
void keyboardEnDialog::initValue(QString s)
{
keyboard::initValue(s);
ui->lineEdit->setText(s);
}
void keyboardEnDialog::switchsmallOrletter()
{
QList<QPushButton *> btn = this->findChildren<QPushButton *>();
QString t;
foreach (QPushButton * b, btn) {
t = b->text();
if(t.size() == 1)
{
if(t[0].isLower())
{
t[0] = t[0].toUpper();
}
else if(t[0].isUpper())
{
t[0] = t[0].toLower();
}
}
b->setText(t);
}
}