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