Qt – Password Field e MessageBox – C++ – Linux

Publicado: 5 de outubro de 2014 em C/C++

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.

Campo de senha e Caixa de Menssagem

Campo de senha e Caixa de Menssagem

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.

Design

Design

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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s