使用Qt实现简单的登录操作

要求

  • 点击“Ok”按钮判断输入用户名或密码是否正确,如错误弹出消息提示框,可以重新登录
  • 点击“Cancel”按钮,则退出登录

1、项目框架

2、UI界面的设计

3、程序代码

loginDialog.h文件

 #ifndef LOGINDIALOG_H
#define LOGINDIALOG_H

#include <QDialog>
#include <QMessageBox>  // 消息提示框
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class LoginDialog; }
QT_END_NAMESPACE

class LoginDialog : public QDialog
{
    Q_OBJECT

public:
    LoginDialog(QWidget *parent = nullptr);
    ~LoginDialog();

private:
    Ui::LoginDialog *ui;

public slots:
    // 处理OK按钮的槽函数
    void onAccepted(void) ;

    // 处理cancle按钮的槽函数
    void onRejected(void);



};
#endif // LOGINDIALOG_H

loginDialog.cpp文件

#include "logindialog.h"
#include "ui_logindialog.h"

LoginDialog::LoginDialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::LoginDialog)
{
    ui->setupUi(this);

    // 信号和槽连接
    // 点击Ok发送信号accepted
    connect(ui->m_btnBox,SIGNAL(accepted(void)),
                this, SLOT(onAccepted(void)));

    //点击Cancel发送信号rejected
    connect(ui->m_btnBox,SIGNAL(rejected(void)),
            this, SLOT(onRejected(void)));
}

LoginDialog::~LoginDialog()
{
    delete ui;
}


// 处理OK按钮的槽函数
void LoginDialog::onAccepted(void)
{
     // tarena/123456:提示登录成功,否则提示失败
    if(ui->m_usernameEdit->text() == "tarenae" &&
            ui->m_passwordEdit->text() == "12345")
    {
        qDebug() << "登录成功";
        close();  // 关闭登录窗口
    }
    else
    {
        // 创建消息提示框
        QMessageBox msgBox(
                           QMessageBox::Critical,   // 图标
                           "Error",                 // 标题
                           "用户名或者密码错误",       // 提示信息
                           QMessageBox::Ok,         // 按钮
                           this) ;                  // 父窗口

        // 显示消息提示框,并进入事件循环
        msgBox.exec() ;
    }
}


// 处理cancle按钮的槽函数
void LoginDialog::onRejected(void)
{
    QMessageBox msgBox(
                       QMessageBox::Question,    // 图标
                       "登录",                    // 标题
                       "是否确定取消登录?",         // 提示信息
                       QMessageBox::Yes | QMessageBox::No,   //按钮
                       this) ;      // 父窗口


    // 显示消息提示框,并进入事件循环,点击Yes或No时候都会退出事件循环
    // 但是返回结果不同,如果点击Yes则退出登录对话框
    if(msgBox.exec() == QMessageBox::Yes)
    {
        close() ;
    }

}

main.cpp文件

#include "logindialog.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LoginDialog w;
    w.show();
    return a.exec();
}

4、运行效果

未完待续


有疑问的小伙伴可以留言一起交流讨论!!!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值