完善對話框,點擊登錄對話框,如果賬號和密碼匹配,則彈出信息對話框,給出提示“登錄成功",提供一個Ok按鈕,用戶點擊OK后,關閉登錄界面,跳轉到其他界面
如果賬號和密碼不匹配,彈出錯誤對話框,給出信息”賬號和密碼不匹配,是否重新登錄”,并提供兩個按鈕YesINO,用戶點擊Yes后,清除密碼框中的內容,繼續讓用戶進行登錄,如果用戶點擊No按鈕,則直接關閉登錄界面
如果用戶點擊取消按鈕,則彈出一個問題對話框,給出信息"您是否確定要退出登錄?",并給出兩個按鈕YeSINO,用戶迪納基Yes后,關閉登錄界面,用戶點擊N0后,關閉對話框,繼續執行登錄功能要求:基于屬性版和基于靜態成員函數版至少各用一個
#include "hw20240221.h"
#include "ui_hw20240221.h"hw20240221::hw20240221(QWidget *parent): QWidget(parent), ui(new Ui::hw20240221)
{ui->setupUi(this);/* ---- connect cancel button click action signal to slot:my_BtnCancel_clicked ---- *///connect(ui->BtnCancel,SIGNAL(clicked()),this,SLOT(my_BtnCancel_clicked()));connect(ui->BtnLogin,&QPushButton::clicked,this,&hw20240221::my_BtnLogin_clicked);connect(this,&hw20240221::my_signal,this,&hw20240221::my_signal_slot);setWindowFlag(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);
}hw20240221::~hw20240221()
{delete ui;
}void hw20240221::my_BtnCancel_clicked(){this->close();
}void hw20240221::my_BtnLogin_clicked(){qDebug() << "my_BtnLogin_clicked";
// emit my_signal();
// QMessageBox msg(QMessageBox::Warning,
// "warning",
// "please wait",
// QMessageBox::Yes|QMessageBox::No,
// this);
// msg.exec();if(ui->EdtUserName->text() == "admin" && ui->EdtPassword->text() == "123456"){int ret = QMessageBox::information(this,"登錄成功"," 登錄成功 ",QMessageBox::Ok);if(ret == QMessageBox::Ok){}
// int ret = QMessageBox::question(this,"question","are you hungury ?",QMessageBox::Yes | QMessageBox::No);
// if(ret == QMessageBox::Yes){
// QMessageBox::information(this,"info","yes",QMessageBox::Ok);// }}}void hw20240221::my_signal_slot(){if(ui->EdtUserName->text() == "admin" && ui->EdtPassword->text() == "123456"){emit sig_LoginSuc();}else{//qDebug() << "login failed, please re-input";ui->LabResponse->setText("login failed, please re input...");ui->EdtUserName->clear();ui->EdtPassword->clear();}
}void hw20240221::on_LabClear_linkActivated(const QString &link)
{}void hw20240221::on_LabClear_linkHovered(const QString &link)
{}void hw20240221::on_LabCancel_linkActivated(const QString &link)
{}void hw20240221::on_LabCancel_linkHovered(const QString &link)
{}void hw20240221::on_BtnClear_clicked()
{ui->EdtUserName->clear();ui->EdtPassword->clear();
}