Задать вопрос
@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();
}
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Skillbox
    Профессия Разработчик С++
 с нуля + ИИ
    7 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
hydra_13
@hydra_13
Пограммист - любитель)
переопредели closeEvent:
void closeEvent(QCloseEvent * event){
if (!rightPass){
qApp->closeAllWindows();
}
}
on_label_destroyed - не нужен будет
для хранения пар логин-пароль я бы использовал QMap
так, на пой взгляд проще проверять правильность ввода
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Uniscan Research Новосибирск
от 140 000 до 200 000 ₽
АО НПП «АМЭ» Санкт-Петербург
До 250 000 ₽
Базис-Центр Коломна
от 70 000 до 500 000 ₽