#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>
#include <QTimer>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
//存储口令+长度
int mLastCharCount=0;
QString mLineEditText;
void Dialog::on_pushButton_clicked()
{//显示口令,测试正确性
ui->label_2->setText(mLineEditText);
}
void Dialog::slotDisplayMaskPassword()
{//全变*
QString tmp = mLineEditText;
tmp.fill('*',tmp.size());
ui->lineEdit->setText(tmp);
}
//下面是qlineedit的两个槽函数,在ui里右击转到槽即可
void Dialog::on_lineEdit_textChanged(const QString &text)
{
if(text.count()>mLastCharCount)//输入
{
mLineEditText.append(text.right(1));
}
else if(text.count()<mLastCharCount)//删除
{
mLineEditText.remove(mLineEditText.count()-1,1);
}
mLastCharCount = mLineEditText.count();
// qDebug()<<mLineEditText;
}
void Dialog::on_lineEdit_cursorPositionChanged(int oldPos, int newPos)
{
if(oldPos>=-1 && newPos>=0 )
{
if(newPos>oldPos)
{
QTimer::singleShot(400,this,SLOT(slotDisplayMaskPassword()));//400毫秒后全变*
}
else
{
ui->lineEdit->setCursorPosition(oldPos);
}
}
}