@Hipstoun
Студент, весельчак и балагур

Как пофиксить баг с авторизацией?

В QT сделано авторизация ввод логина и пароля. Но если закрыть окно ввода то принимает за правильный ввод пароля и пускает в след окно.

#include "login.h"
#include "ui_login.h"

Login::Login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Login)
{
    ui->setupUi(this);
    ui->label->hide();
}

Login::~Login()
{
    delete ui;
}

void Login::on_OkayButton_clicked()
{
    QVector<QString> Logins[2];
    Logins[0].push_back("log");
    Logins[1].push_back("123");
    Logins[0].push_back("login");
    Logins[1].push_back("12345");
    Logins[0].push_back("gol");
    Logins[1].push_back("12345");
    int index=0;
    for(int i=0; i<Logins[0].size();i++)
    {
        if (ui->LoginEdit->text()==Logins[0][i])
        {
            index=i;

        }

    }
    if(ui->PaswordEdit->text()==Logins[1][index])
    {
        rightPass=true;
        close();
    }
    else
    {
        rightPass=false;
        ui->label->show();
    }
}

void Login::on_label_destroyed()
{
    rightPass=false;
    ui->label->show();
}
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
hydra_13
@hydra_13
Пограммист - любитель)
переопредели closeEvent:
void closeEvent(QCloseEvent * event){
if (!rightPass){
qApp->closeAllWindows();
}
}
on_label_destroyed - не нужен будет
для хранения пар логин-пароль я бы использовал QMap
так, на пой взгляд проще проверять правильность ввода
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы