LoginDialog.h
#ifndef __LOGINDIALOG_H
#define __LOGINDIALOG_H
#include "ui_LoginDialog.h"
#include <QMessageBox> //消息提示框
#include <QDebug> //打印调试
class LoginDialog:public QDialog,public Ui::LoginDialog{
Q_OBJECT
public:
//构造函数
LoginDialog(void);
public slots:
//处理Ok按钮的槽函数
void onAccepted(void);
//处理Cancel按钮的槽函数
void onRejected(void);
};
#endif//__LOGINDIALOG_H
LoginDialog.cpp
#include "LoginDialog.h"
//构造函数
LoginDialog::LoginDialog(void){
//界面初始化
setupUi(this);
//信号和槽连接
//点击Ok按钮发送信号accepted()
connect(m_btnBox,SIGNAL(accepted(void)),
this,SLOT(onAccepted(void)));
//点击Cancel按钮发送信号rejected()
connect(m_btnBox,SIGNAL(rejected(void)),
this,SLOT(onRejected(void)));
}
//处理Ok按钮的槽函数
void LoginDialog::onAccepted(void){
//如果属于tarena/123456打印提示登录成功,如果不是弹出消息框提示
//登录失败
if(m_editUserName->text()=="tarena" &&
m_editPassword->text()=="123456"){
qDebug("登录成功!");
qDebug() << "Login Success!";
close();//关闭登录对话框
}
else{
//参数:图标,标题,提示消息,按钮,父窗口
QMessageBox msgBox(
QMessageBox::Critical,
"登录失败",
"用户名或密码错误,请重试!",
QMessageBox::Ok,
this);
//显示消息提示框,并进入事件循环
msgBox.exec();
}
}
//处理Cancel按钮的槽函数
void LoginDialog::onRejected(void){
//弹出消息提示框,提示用户是否确定要取消登录
QMessageBox msgBox(
QMessageBox::Question,
"取消登录",
"确定要取消登陆吗?",
QMessageBox::No|QMessageBox::Yes,
this);
//显示消息提示框,并进入事件循环,点击No或Yes都会退出事件循环,点
//击Yes退出时,关闭登录对话框
if(msgBox.exec() == QMessageBox::Yes){
close();//关闭登录对话框
}
}
main.cpp
#include <QApplication>
#include "LoginDialog.h"
int main(int argc,char** argv){
QApplication app(argc,argv);
LoginDialog dialog;
dialog.show();
return app.exec();
}