Qt 制作登录对话框

一、目的

实现简单的类似QQ登录界面的登录对话框,可以输入用户名和密码,有登录和退出按钮,密码密文显示,用户名和密码正确则进入主窗口,错误则进行提示。

二、实现方案说明

我们之前已经实现了多窗口的功能→Qt5-Qt Creator进行多窗口编程,那么思路就很清晰了,程序启动首先进行登录对话框,登录对话框中有输入用户名和密码的LineEdit以及登录和退出的push button,然后写登录槽函数,将退出按钮和程序退出关联。其中登录槽函数进行用户名和密码的验证即可,验证通过则进入主窗口,验证失败则提醒并做一些后续工作。

OK,和之前实现多窗口一样,我们先创建一个基于widget的基础application,然后进入工程后添加文件,添加一个设计师界面类,依然选择dialog without button,然后类名设为loginDlg,接着按照我们的设想在界面文件中拖入对应的控件,然后做一些调整即可。

分别给用户名的lineEdit起名为usrLineEdit、密码的lineEdit起名pwdLineEdit,登录push button起名loginBtn,退出push button起名exitBtn,接着在Signal & Slots Editor中添加退出按钮的点击信号和loginDlg的退出方法的关联,最后右击登录push button选择转到槽去实现其槽函数即可。

三、实现结果展示

用户名为qt,密码为123456,目前是写死的,因为我们没有使用数据库,也没有连接服务器,仅仅是在本地进行简单的测试。

四、代码展示

main.cpp:

#include "widget.h"
#include <QApplication>
#include "logindlg.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    loginDlg login;
    
    if(login.exec() == QDialog::Accepted)
    {
        w.show();
        return a.exec();
    }
    else return 0;
}

logindlg.cpp:

#include "logindlg.h"
#include "ui_logindlg.h"
#include <QMessageBox>

loginDlg::loginDlg(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::loginDlg)
{
    ui->setupUi(this);
    ui->pwdLineEdit->setEchoMode(QLineEdit::Password);
}

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

//登录按钮的槽函数实现
void loginDlg::on_loginBtn_clicked()
{
	/*ui->usrLineEdit->text().trimmed():获取用户名,后面的trimmed可以通过F1查看帮助了解其用法;
	判断用户名和密码分别符合“qt”和“123456”后调用accept使得main.cpp中条件满足,显示出widget;
	判断不符合要求时则用messageBox显示警告信息,然后清空用户名和密码框中的信息,最后将光标集中到usrLineEdit中。
	*/
    if(ui->usrLineEdit->text().trimmed() == tr("qt") && ui->pwdLineEdit->text() == tr("123456"))
        accept();
    else
    {
        QMessageBox::warning(this, tr("Warning"), tr("user name or password error!"),QMessageBox::Yes);
        ui->usrLineEdit->clear();
        ui->pwdLineEdit->clear();
        ui->usrLineEdit->setFocus();
    }
}

 

五、最后

这里仅仅实现了最初级的登录会话框,主要是对多窗口的一个应用以及阐述一下如何获取Qt自带的帮助信息,让我们更好的去阅读一些Qt的源码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值