QT实现用户登录对话框

这篇博客详细介绍了如何使用Qt库创建一个登录对话框,包括UI界面初始化、信号与槽的连接以及Ok和Cancel按钮的响应处理。在onAccepted()函数中,实现了验证用户名和密码是否为'tarena/123456',成功则关闭对话框,否则显示错误消息。在onRejected()函数中,弹出确认取消登录的对话框。这是一个关于Qt GUI编程的基础示例。
摘要由CSDN通过智能技术生成

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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值