Para utilizar senhas em um campo de edição na linguagem de programação C++ você deve usar o componente LineEdit com sua propriedade echoMode alterada para Password, deste modo o controle altera a visualização dos caracteres comuns para caracteres “*”.
E para exibir um resultado ou mensagem para o usuário você pode utilizar a classe QMessageBox, está fornece uma caixa de diálogo modal para informar o usuário ou para fazer ao utilizador uma pergunta e receber uma resposta.
Qt Creator Design
1 – Crie um projeto no Qt e adicione na tela um Label, um LineEdit e um PushButton, alinhe e mude as propriedades de texto dos widgets como na figura abaixo.
Altere a propriedade do LineEdit chamada echoMode para Password e utilize o código abaixo para completar seu código gerado automaticamente, atente-se que declaramos um método para verificação da senha na definição da classe no arquivo .h e o utilizamos na implementação da classe no arquivo .cpp.
Exemplo:
Neste exemplo criamos um método para verificar a senha no qual o usuário entrará através de uma caixa de edição, será verificado primeiro o tamanho da senha e logo após o conteúdo da senha, visto que este método não pode ser utilizado em um programa funcional, limita-se apenas para o aprendizado de como utilizar mascaras de senha no widget LineEdit e não como trabalhar com senhas em nível profissional.
Para a versão deste programa para C++ Windows MFC: clique aqui.
C++
Classe – arquivo .h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
// Cria metodo de verificação de senha
bool verificaSenha(QString senha);
};
#endif // MAINWINDOW_H
Classe – arquivo .cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
bool MainWindow::verificaSenha(QString senha)
{
// campo para validar função
bool correto = true;
// recupera senha de alguma fonte (apenas teste)
QString recSenha = "daaberto";
if ((senha.length() != recSenha.length()) || (senha != recSenha))
{
correto = false;
}
return correto;
}
void MainWindow::on_pushButton_clicked()
{
// Verifica senha e exibe resultado
if (verificaSenha(ui->lineEdit->text()))
{
QMessageBox::information(this, tr("Sucesso"),tr("\nSenha verificada com sucesso!\n"));
}
else
{
QMessageBox::information(this, tr("Erro"),tr("\nSenha invalida, tente outra vez!\n"));
}
}



