다른 함수의 "if 루프"내부에서 함수 호출 / 이동-Qt, C ++

남자

qt에서 로그인 페이지를 구현하려고하는데 이상한 문제가 발생했습니다. 두 가지 유형의 비밀번호를 확인하고 싶습니다. 하나는 일반 암호이고 두 번째는 마스터 암호입니다. 사용자가 비밀번호를 5 회 잘못 입력하면 마스터 비밀번호를 입력해야하며, 비밀번호 3 개도 잘못 입력하면 디스플레이에 오류가 발생합니다.

코드를 작성했지만 수정할 수없는 문제가 있습니다. 내 로그인 코드는 다음과 같습니다.

void FormLogin::OnLogin()
{
    QString password = passLineEdit->text();

    // Checking if username or password is empty
    if (password.isEmpty())
        {QMessageBox::information(this, tr("Warning!"), "Password field is empty!");
    } else if (password == "pass")
    {this->destroy();
    } else {
    QMessageBox::information(this, tr("Warning!"), QString("Wrong password!!! Only %1 attempt(s) left!").arg(4-attempt));
    attempt++;
    if (attempt == 5){
        QMessageBox::information(this, tr("Warning!"), QString("The device is locked due to too many failed attempts. Please enter the master password to unlock the device now."));
        connect(loginButton, SIGNAL(clicked()), this, SLOT(OnMasterLogin()));
        return;}
        }       
}

void FormLogin::OnMasterLogin()
{

    QString mpassword = passLineEdit->text();

    // Checking if username or password is empty
    if (mpassword.isEmpty())
        {QMessageBox::information(this, tr("Warning!"), "MPassword field is empty!");
    } else if (mpassword == "masterpass")
    {this->destroy();
    } else {
    QMessageBox::information(this, tr("Warning!"), QString("Wrong mpassword!!! Only %1 attempt(s) left!").arg(2-master_attempt));
    master_attempt++;
    if (master_attempt == 3){
    QMessageBox::information(this, tr("Warning!"), QString("The device is permanently locked due to too many failed attempts. Please contact the device manufacturer."));}}

}

첫 번째 함수의 시도가 5 일 때만 두 번째 함수를 호출하고 싶습니다.하지만 5 회 루프 후에 제 코드는 두 번째 함수를 호출하지만 첫 번째 함수와 두 번째 함수를 동시에 실행합니다. 아무도 내가 어디에서 잘못하고 있는지 말해 줄 수 있습니까? 함수를 함께 결합하고 두 번째 함수를 첫 번째 루프 내부에 중첩 된 루프로 사용하려고 시도했지만 "if 루프"조건 내에 설정하더라도 전체 함수를 호출합니다.

void FormLogin::OnLogin()
{
    QString password = passLineEdit->text();

    // Checking if username or password is empty
    if (password.isEmpty())
        {QMessageBox::information(this, tr("Warning!"), "Password field is empty!");
    } else if (password == "pass")
    {this->destroy();
    } else {
    QMessageBox::information(this, tr("Warning!"), QString("Wrong password!!! Only %1 attempt(s) left!").arg(4-attempt));
    attempt++;
    if (attempt == 5){
        QMessageBox::information(this, tr("Warning!"), QString("The device is locked due to too many failed attempts. Please enter the master password to unlock the device now."));
        QString mpassword = passLineEdit->text(); 
        // Checking if username or password is empty
        if (mpassword.isEmpty())
            {QMessageBox::information(this, tr("Warning!"), "MPassword field is empty!");
        } else if (mpassword == "masterpass")
            {this->destroy();
        } else {
            QMessageBox::information(this, tr("Warning!"), QString("Wrong mpassword!!! Only %1 attempt(s) left!").arg(2-master_attempt));
            master_attempt++;
            if (master_attempt == 3){
            QMessageBox::information(this, tr("Warning!"), QString("The device is permanently locked due to too many failed attempts. Please contact the device manufacturer."));}}}
        }       
}

첫 번째 함수는 다음 코드를 사용하여 호출됩니다.

connect(loginButton, SIGNAL(clicked()), this, SLOT(OnLogin()));

어떤 제안이라도 대단히 감사합니다.

애드리안 드 그 루트

loginButton :: clicked ()를 FormLogin :: OnLogin ()에 이미 연결했다고 가정합니다. 이 방법에서는 5 번 시도 할 때 FormLogin :: OnMasterLogin () 다른 연결 추가 하지만 원래 연결은 그대로 둡니다. disconnect ()를 사용하거나 FormLogin :: OnLogin ()에 논리를 추가하여 현재 "마스터 로그인"모드 인 경우 구제 조치를 취하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Qt는 다른 스레드에서 이벤트 루프에 함수 호출을 추가합니다.

분류에서Dev

루프 내부의 함수 호출이 Python에서 작동하지 않습니다.

분류에서Dev

루프 파이썬 내부의 함수 호출

분류에서Dev

WPF C #의 For 루프에서 사용자 정의 함수 호출

분류에서Dev

루프에서 setTimeout 함수 호출이 작동하지 않습니다.

분류에서Dev

for 루프 C ++ 내에서 Void 함수 호출

분류에서Dev

ForEach 루프 내에서 함수 호출

분류에서Dev

루프 내에서 함수 호출

분류에서Dev

while 루프 내에서 40 초마다 함수 호출

분류에서Dev

루프 내부의 비동기 호출에서 테이블보기 dataSource를 수정할 수 없습니다.

분류에서Dev

현재 클래스의 루프에서 다른 클래스 함수 호출

분류에서Dev

mysqli fetch 루프에있는 동안 함수를 호출 할 수 없습니다.

분류에서Dev

forEach 루프가 호출되는 동안이 아니라 루프 끝에 기록 된 호출 된 함수 값으로 이상하게 작동합니다.

분류에서Dev

내부에서 호출되는 다른 함수로 동일한 함수 호출

분류에서Dev

위젯 블루 프린트에서 C ++ 함수 호출

분류에서Dev

루프 내에서 조건부 및 함수 호출 방지

분류에서Dev

다른 매개 변수 값을 사용하여 foreach 루프 내부의 컨트롤러 내부에서 함수를 호출하는 방법

분류에서Dev

for 루프에서 직접 함수 호출

분류에서Dev

루프 헤더에서 함수 호출

분류에서Dev

C ++ 클래스 : 공용 함수에서 for 루프에서 개인 함수 호출

분류에서Dev

루프 내에서 함수 호출, "정의되지 않음은 함수가 아닙니다."

분류에서Dev

for 루프가 비동기 함수에서 부분 출력을 제공합니다.

분류에서Dev

.py 파일 실행, for 루프에서 파이썬 함수 호출

분류에서Dev

동일한 루프 내에서 호출되는 함수의 콜백 함수에서 사용할 for 루프의 플래그 설정

분류에서Dev

루프 내에서 동적으로 생성 된 함수 호출에 값 전달

분류에서Dev

Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

분류에서Dev

C의 다른 함수에서 주 함수 호출

분류에서Dev

for 루프에 함수 호출 배치

분류에서Dev

루프 내에서 동일한 자바 스크립트 함수 호출

Related 관련 기사

  1. 1

    Qt는 다른 스레드에서 이벤트 루프에 함수 호출을 추가합니다.

  2. 2

    루프 내부의 함수 호출이 Python에서 작동하지 않습니다.

  3. 3

    루프 파이썬 내부의 함수 호출

  4. 4

    WPF C #의 For 루프에서 사용자 정의 함수 호출

  5. 5

    루프에서 setTimeout 함수 호출이 작동하지 않습니다.

  6. 6

    for 루프 C ++ 내에서 Void 함수 호출

  7. 7

    ForEach 루프 내에서 함수 호출

  8. 8

    루프 내에서 함수 호출

  9. 9

    while 루프 내에서 40 초마다 함수 호출

  10. 10

    루프 내부의 비동기 호출에서 테이블보기 dataSource를 수정할 수 없습니다.

  11. 11

    현재 클래스의 루프에서 다른 클래스 함수 호출

  12. 12

    mysqli fetch 루프에있는 동안 함수를 호출 할 수 없습니다.

  13. 13

    forEach 루프가 호출되는 동안이 아니라 루프 끝에 기록 된 호출 된 함수 값으로 이상하게 작동합니다.

  14. 14

    내부에서 호출되는 다른 함수로 동일한 함수 호출

  15. 15

    위젯 블루 프린트에서 C ++ 함수 호출

  16. 16

    루프 내에서 조건부 및 함수 호출 방지

  17. 17

    다른 매개 변수 값을 사용하여 foreach 루프 내부의 컨트롤러 내부에서 함수를 호출하는 방법

  18. 18

    for 루프에서 직접 함수 호출

  19. 19

    루프 헤더에서 함수 호출

  20. 20

    C ++ 클래스 : 공용 함수에서 for 루프에서 개인 함수 호출

  21. 21

    루프 내에서 함수 호출, "정의되지 않음은 함수가 아닙니다."

  22. 22

    for 루프가 비동기 함수에서 부분 출력을 제공합니다.

  23. 23

    .py 파일 실행, for 루프에서 파이썬 함수 호출

  24. 24

    동일한 루프 내에서 호출되는 함수의 콜백 함수에서 사용할 for 루프의 플래그 설정

  25. 25

    루프 내에서 동적으로 생성 된 함수 호출에 값 전달

  26. 26

    Python : while 루프 내에서 호출 된 함수가 단독으로 호출 될 때와 다른 것을 반환하는 이유는 무엇입니까?

  27. 27

    C의 다른 함수에서 주 함수 호출

  28. 28

    for 루프에 함수 호출 배치

  29. 29

    루프 내에서 동일한 자바 스크립트 함수 호출

뜨겁다태그

보관