弄了个简单的记住账号密码登录功能,适合初学者学习,直接上代码,代码有注释。

喂饭到嘴边了,看你会不会吃啦

开发环境是VS2015

1、由于没有写注册功能,所以账号和密码我提前写在一个ini文件,这个文件直接手动写,我是用notepad++写的

上面那组是上次成功登录时是否记住密码,下面那组是账号和密码(好像ini文件的左边也就是键不支持中文,所以下面那组对应关系是  密码=账号 )

2、头文件    LoginPassword.h

#pragma once#include <QtWidgets/QWidget>
#include "ui_LoginPassword.h"
#include <QSettings>
#include <QMessageBox>
#include <QTextCodec>// 宏定义,存放登录信息的ini配置文件的绝对路径,你也可以自定义自己的路径,相对绝对都行
// 因为这里没有写注册功能,所以ini文件提前写好
#define CONFIGPATH (QCoreApplication::applicationDirPath() + "/config/config.ini")class LoginPassword : public QWidget
{Q_OBJECTpublic:LoginPassword(QWidget *parent = Q_NULLPTR);private:void loginInit();private slots:void checkBox_password_clicked();void pushButton_login_clicked();private:Ui::LoginPasswordClass ui;bool ispassword;
};

3、源文件    LoginPassword.cpp

#include "LoginPassword.h"LoginPassword::LoginPassword(QWidget *parent): QWidget(parent)
{ui.setupUi(this);// 登录界面初始化loginInit();// 绑定信号和槽connect(ui.checkBox_password, &QCheckBox::clicked, this, &LoginPassword::checkBox_password_clicked);connect(ui.pushButton_login, &QPushButton::clicked, this, &LoginPassword::pushButton_login_clicked);
}// 登录界面初始化
void LoginPassword::loginInit()
{QSettings setting(CONFIGPATH, QSettings::IniFormat); // 打开存放登录信息的ini文件setting.setIniCodec(QTextCodec::codecForName("UTF-8")); // 设置编码格式,因为我这里有中文,读和写的时候都要保持一致QString isremember = setting.value("login/isremember").toString(); // 是否选择了记住密码QString name = QString::fromUtf8(setting.value("login/username").toByteArray()); // 账号QString lock = setting.value("login/password").toString(); // 密码ui.lineEdit_username->setText(name); // 显示上一次登录的账号名if (isremember == "true") // 记住密码{ui.lineEdit_password->setText(lock); // 密码写在密码输入框ui.checkBox_password->setChecked(true); // 记住密码那里打√ispassword = true; // 记住密码} else{ui.checkBox_password->setChecked(false); // 记住密码那里不打√ispassword = false; // 不记住密码}
}// 登录
void LoginPassword::pushButton_login_clicked()
{QString textname = ui.lineEdit_username->text(); // 获得输入的账号QString textpassword = ui.lineEdit_password->text(); // 获得输入的密码QSettings setting(CONFIGPATH, QSettings::IniFormat); // 打开ini文件setting.setIniCodec(QTextCodec::codecForName("UTF-8")); // 设置编码格式QStringList nameLockList = setting.childGroups(); // 获得ini文件的所有组setting.beginGroup(nameLockList[0]); // 选择账号密码那组(这组在下面,下标组名却是0)bool islogin = false; // 用来查验账号密码是否正确foreach(QString key, setting.childKeys()) // 遍历账号密码那组{if ((key == textpassword) && (QString::fromUtf8(setting.value(key).toByteArray()) == textname)) // 查验输入的账号密码和文件里的账号密码是否有对应的{islogin = true; // 如果遍历到有就改变标志位并退出break;}}if (islogin) // 说明账号密码正确{QSettings writeini(CONFIGPATH, QSettings::IniFormat); // 打开ini文件writeini.setIniCodec(QTextCodec::codecForName("UTF-8")); // 设置编码格式if (ispassword) // 选择保存密码{writeini.setValue("login/isremember", "true"); // 写ini文件时记录为true}else // 不保存密码{writeini.setValue("login/isremember", "false"); // 写ini文件时记录为false}writeini.setValue("login/username", textname); // 把账号写入ini文件writeini.setValue("login/password", textpassword); // 把密码写入ini文件// 消息提示,模拟登录成功,真正设计这里一般是跳转到主界面或播放登录动画QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("登录成功"));}else // 账号密码跟ini文件对不上{// 消息提示登录失败QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("账号或密码有误,请重新登录"));}
}// 选择是否记住密码
void LoginPassword::checkBox_password_clicked()
{// 根据是否记住密码改变标志位ispassword = ui.checkBox_password->isChecked();
}

4、UI 界面

我用qt设计师界面设计写的,方便简单,没几个控件

5、效果显示

QT 记住账号密码登录相关推荐

  1. Vue实现登录记住账号密码功能的思路与过程

    文章来源: 学习通http://www.bdgxy.com/ 目录 实现思路 这里有三种方法来存储账号密码: 功能界面 记住账号密码功能的具体实现 密码加密 localStorage cookies ...

  2. android中注册的账号密码储存在,Android中使用SharedPreferences完成记住账号密码的功能...

    效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如 ...

  3. 利用SharedPreferences完成记住账号密码的功能

    利用SharedPreferences完成记住账号密码的功能 效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 Sh ...

  4. Jsp使用Cookie完成记住账号密码的功能

    网站中对于记住账号密码,方便下次登录的使用非常普遍,那么它是怎么实现的呢? 首先他的流程是,设计一个复选框,当选中复选框时,就会传值到处理页面,复选框的用途就是判断用户是否愿意记住账号密码. 我们通过 ...

  5. C# ASP.NET MVC:使用Cookie记住账号密码

    MVC记住账号密码 使用cookie操作 前端: 1 <div> 2 用户名:<input type="text" id="UserName" ...

  6. uni-app 实现记住账号密码功能

    1.示例: 2.代码: 只看核心代码块 其他不用管 <template><view class="page"><view class="to ...

  7. android 记住多个账号,Android实现记住账号密码功能

    本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下 布局 一个复选框 android:id="@+id/checkbox" android:ra ...

  8. [git] 小乌龟工具TortoiseGit记住账号密码 ——简单版操作指南

    如何让小乌龟 记住用户名和密码的操作指南 问题描述 步骤1 步骤2 问题描述 在小乌龟的使用过程中,每次push或者pull都要重复输入账号密码,非常麻烦. 如果能记住账号密码就好了,这样就省去了时间 ...

  9. 账号密码代码php,JS代码怎样实现记住账号密码

    这次给大家带来JS代码怎样实现记住账号密码,JS代码实现记住账号密码的注意事项有哪些,下面就是实战案例,一起来看一下. 很多登录功能上都有个"记住密码"的功能,其实无非就是对coo ...

最新文章

  1. php做gui,php7 图形用户界面GUI如何开发
  2. 学python买什么书好-学python3什么书好
  3. 监督学习-逻辑回归及编程作业(一)
  4. 聊聊JavaScript和Scala的表达式 Expression
  5. MySQL查询,按拼音首字母排序
  6. 科普 | 知识图谱相关的名词解释
  7. 计算机论文哪儿找,查找关于计算机毕业论文.docx
  8. 索引书单(持续更新中)
  9. svn中的文件夹上的标志的意思
  10. oracle登录卡,【Oracle连接问题】关于windows xp3上oracle连接登录卡住的问题
  11. 电脑翻页时钟屏保Fliqlo
  12. 计算机用户接入广域网的技术,广域网接入技术
  13. 电力LED时钟系统解决方案实现精确时间同步
  14. Python练习实战股票网页数据
  15. html5新浪微博代码,JS实现的新浪微博大厅文字内容滚动效果代码
  16. 关于bp抓包挂代理127.0.0.1服务器出现“有软件正在阻止Firefox安全连接至网站”问题的解决方法
  17. 初二计算机听课笔记,初二物理上听课记录20篇
  18. 习题2.4 编写程序,从键盘输入两个整数分别给变量x,y,如果x大于y,则输出x及x-y的值;否则,输出y及y-x的值
  19. 高考十年后,我成为一名高级研发工程师
  20. linux系统游戏性能对比,Steam Mac/Windows游戏性能、画质对比

热门文章

  1. Linux 中断管理之ARM GIC V3 初始化
  2. 如何使用CAD软件来修改表格中CAD字体颜色?
  3. 利用手机访问电脑上开发的html页面
  4. 【Android】虚拟环绕声
  5. wps删除分节符导致前面格式变乱的解决方案
  6. 几个Gerrit代码检查checkstyle问题总结
  7. 免费的多功能视频格式转换工具XMedia Recode
  8. Excel:批量将某字符替换为“换行符”
  9. PanDownload 复活了!60MB/s!附下载地址
  10. LruCache缓存图片+清除本地缓存