网站首页 > 技术教程 正文
一、目的
实现简单的类似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,目前是写死的,因为我们没有使用数据库,也没有连接服务器,仅仅是在本地进行简单的测试。
【更多音视频+QT学习资料,点击下方链接免费领取↓↓,先码住不迷路~】
点击领取→Qt开发+音视频开发基础知识和资料包
四、代码展示
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的源码。
猜你喜欢
- 2024-10-09 QQ又一功能被停止运营,作为80后的青春记忆,真担心它会彻底消失
- 2024-10-09 魅族21手机获推Flyme 10.5.5.1A系统更新
- 2024-10-09 你的QQ还会登录吗?是否已成了90后的回忆
- 2024-10-09 零基础教你学前端——28,文字框与密码框
- 2024-10-09 QQ登录是怎么啦?作死!(qq怎么了登录)
- 2024-10-09 你的QQ中招没有?(你的qq中招没有广告)
- 2024-10-09 全新体验版Windows QQ正式上线官网,实现三端统一
- 2024-10-09 “QQ崩了”登上热搜,网友反映无法登陆,正值QQ诞生24周年
- 2024-10-09 绝地求生手游怎么QQ登录,或者怎么微信登录,小编这就告诉你
- 2024-10-09 QQ大规模被盗号,原因众说纷纭,但有一个相同点
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
- 
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
 
- 标签列表
- 
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
 

本文暂时没有评论,来添加一个吧(●'◡'●)