一个帮你记密码的小程序

OnePass

??现在的人们社交软件越来越多。需要记住的社交账号也越来越多,我就是前几天忘了某个密码折腾了好久,于是心血来潮想使用Qt整一个小程序来帮助自己查询密码。取个名字叫OnePass吧。

思路:

??因为技术原因所以做的只需要满足自己的需求。计划着是用Qt做界面,方便操作,然后用数据库记录各个社交平台的账号密码。

1、初始界面

需求:

1、打开后会先弹出一句欢迎的话(虽然做的简陋,但礼貌还是要有的)。

 //需要添加头文件#include<QMessageBox>
 QMessageBox::about(this,"Welcome","Welcom to use OnePass!");

2、设置背景图片

先添加资源文件

//设置图片
ui->label->setPixmap(QPixmap("://background.jpg"));
//让图片自动适应大小
ui->label->setScaledContents(true);

3、拖放控件

效果图

后台登陆

??登陆后出现菜单界面,需要先将菜单界面的头文件包含进去,然后在登陆界面的类的私有成员里面添加一个菜单类的对象,这样调用show函数就可以出现菜单界面。
??在登陆按钮加一个响应事件函数来相应click,如果密码正确,则关闭当前窗口,让菜单窗口出现,错误则给出错误信息,并将当前文本框清空,文本框须设置为密码模式。

 //将文本框设置为密码模式
 ui->lineEdit->setEchoMode(QLineEdit::Password);
    #include"menu.h"

    private:
            menu m;
void MainWindow::on_pushButton_clicked()
{
    QString pass = ui->lineEdit->text();
    if(pass == "123456")    //密码为自己设置
    {
        this->close();
        m.show();
    }
    else
    {
       QMessageBox::warning(this,"Error","Password Is Wrong !");
       ui->lineEdit->clear();
    }
}

菜单

1、设置背景图片

??这里当然是要放我老婆石原的美照了。

    //设置图片
    ui->back->setPixmap(QPixmap("://menwqeu.jpg"));
    //让图片自动适应大小
    ui->back->setScaledContents(true);

2、拖放控件

3、效果图

数据库建库和表

create table up(
    platform varchar(20),
    username varchar(50),
    password varchar(50)
);

查询功能 search

需求:

1、背景图片

//设置图片
ui->label->setPixmap(QPixmap("://background.jpg"));
//让图片自动适应大小
ui->label->setScaledContents(true);

2、功能界面布局

3、实现槽函数

??在实现前首先应该在构造函数中连接数据库。

    #include<QSqlQuery>//对sql语句操作
    #include<QSqlDatabase>
    #include<QSqlError>
    #include<QMessageBox>
    #include<QVariantList> //泛型

    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    //连接数据库,内容需要自己填
    db.setHostName("");       //数据库服务器IP
    db.setUserName("");       //数据库用户名
    db.setPassword("");       //密码
    db.setDatabaseName("");   //使用哪个数据库

    //打开数据库
    if(!db.open())//打开失败
    {
        //打开失败给出错误提示
        QMessageBox::warning(this,"Error",db.lastError().text());
        return;
    }
按钮“显示所有课查找项”

??这个按钮的功能就是:按下后会在下面的文本框中显示出所有已经存入的平台,方便知道哪些是已经存入且可以查找的。

void search::on_pushButton_clicked()
{
    QSqlQuery query;    //sql句柄
    query.exec("select * from up"); //执行语句
    while(query.next()) //只要下一条不为空
    {
        //注意这块必须使用追加,而不是setTest()
        ui->eara->append(query.value("platform").toString());
    }
}
按钮“查找”

??这个按钮的功能是按下后,会查找在最上面文本框中输入的平台的账号和密码并显示在下面的三个lineEdit上。
??具体实现就是先获取文本框输入内容,然后去数据库中查找。

void search::on_pushButton_2_clicked()
{
    QString str = ui->search_2->text();     //获取要查询的平台
    QSqlQuery query;    //句柄
    QString str1 = "select * from up where platform = '"+str+"'";
    query.exec(str1);
    if(!query.next())   //未找到
    {
        QMessageBox::about(this,"Error","No This Platform !");
        ui->lineEdit->clear();
        ui->lineEdit_2->clear();
        ui->lineEdit_3->clear();
        return;
    }
    ui->lineEdit->setText(query.value("platform").toString());
    ui->lineEdit_2->setText(query.value("username").toString());
    ui->lineEdit_3->setText(query.value("password").toString());
    QMessageBox::about(this,"Success","Success To Search It !");
    ui->search_2->clear();
    ui->lineEdit->clear();
    ui->lineEdit_2->clear();
    ui->lineEdit_3->clear();
}

4、效果图

??有了上面的例子其实其他三个功能都很清晰了就,所以不做过多阐述,只贴上代码。

增加功能 add

界面布局

代码实现


    #include "add.h"
    #include "ui_add.h"
    #include<QSqlQuery>//对sql语句操作
    #include<QSqlDatabase>
    #include<QSqlError>
    #include<QMessageBox>
    #include<QVariantList> //泛型
    #include<QString>

    //构造函数
    add::add(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::add)
    {

        ui->setupUi(this);

        //设置图片
        ui->label->setPixmap(QPixmap("://menwqeu.jpg"));
        //让图片自动适应大小
        ui->label->setScaledContents(true);
    }

    add::~add() //析构函数
    {
        delete ui;
    }

    void add::on_pushButton_clicked()
    {
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
        //连接数据库
        db.setHostName("");//数据库服务器IP
        db.setUserName("");   //数据库用户名
        db.setPassword("");  //密码
        db.setDatabaseName("");   //使用哪个数据库

        //打开数据库
        if(!db.open())//打开失败
        {
            QMessageBox::warning(this,"Error",db.lastError().text());
            return;
        }

        //获取要添加的内容
        QString platform = ui->platform->text();
        QString username = ui->username->text();
        QString password = ui->password->text();

        QSqlQuery query;
        QString str1 = "insert into up values('"+platform+"','"+username+"','"+password+"');";
        if(query.exec(str1))
        {
            QMessageBox::about(this,"Success","Success To Add It !");
            ui->platform->clear();
            ui->username->clear();
            ui->password->clear();
        }

        else
        {
            QMessageBox::about(this,"Fail","Fail To Add It !");
            ui->platform->clear();
            ui->username->clear();
            ui->password->clear();
        }

    }

修改功能 repair

界面布局

代码实现


    #include "repair.h"
    #include "ui_repair.h"
    #include<QSqlQuery>//对sql语句操作
    #include<QSqlDatabase>
    #include<QSqlError>
    #include<QMessageBox>
    #include<QVariantList> //泛型
    #include<QString>

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

        //设置图片
        ui->label->setPixmap(QPixmap("://background.jpg"));
        //让图片自动适应大小
        ui->label->setScaledContents(true);

        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
        //连接数据库
        db.setHostName("");//数据库服务器IP
        db.setUserName("");   //数据库用户名
        db.setPassword("");  //密码
        db.setDatabaseName("");   //使用哪个数据库

        //打开数据库
        if(!db.open())//打开失败
        {
            QMessageBox::warning(this,"Error",db.lastError().text());
            return;
        }
    }

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

    void repair::on_pushButton_clicked()    //显示按钮
    {
        QSqlQuery query;
        query.exec("select * from up");
        while(query.next())
        {
            ui->eara->append(query.value("platform").toString());
        }
    }

    void repair::on_pushButton_2_clicked()      //修改按钮
    {
    //获取修改信息
    QString platform = ui->search_2->text();
    QString username = ui->lineEdit_2->text();
    QString password = ui->lineEdit_3->text();

    QString st1 = "update up set username = '"+username+"' where platform = '"+platform+"';";
    QString st2 = "update up set password = '"+password+"' where platform = '"+platform+"';";

    QSqlQuery query;
    if(query.exec(st1) && query.exec(st2))
    {
        QMessageBox::about(this,"Success","Success To Repair It !");
        ui->search_2->clear();
        ui->lineEdit_2->clear();
        ui->lineEdit_3->clear();
    }

    else
    {
        QMessageBox::about(this,"Fail","Fail To Repair It !");
        ui->search_2->clear();
        ui->lineEdit_2->clear();
        ui->lineEdit_3->clear();
        }
    }

删除功能 remove

界面布局

代码实现

    #include "remove.h"
    #include "ui_remove.h"
    #include<QSqlQuery>//对sql语句操作
    #include<QSqlDatabase>
    #include<QSqlError>
    #include<QMessageBox>
    #include<QVariantList> //泛型
    #include<QString>

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

        //设置图片
        ui->label->setPixmap(QPixmap("://menwqeu.jpg"));
        //让图片自动适应大小
        ui->label->setScaledContents(true);
    }

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

    void remove::on_pushButton_clicked()
    {
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
        //连接数据库
        db.setHostName("");//数据库服务器IP
        db.setUserName("");   //数据库用户名
        db.setPassword("");  //密码
        db.setDatabaseName("");   //使用哪个数据库

        //打开数据库
        if(!db.open())//打开失败
        {
            QMessageBox::warning(this,"Error",db.lastError().text());
            return;
        }

        //获取要添加的内容
        QString platform = ui->platform->text();
        QString username = ui->username->text();
        QString password = ui->password->text();

        QSqlQuery query;
        QString str = "delete from up where platform = '"+platform+"';";
        if(query.exec(str))
        {
            QMessageBox::about(this,"Success","Success To Remove It !");
            ui->platform->clear();
            ui->username->clear();
            ui->password->clear();
        }

        else
        {
            QMessageBox::about(this,"Fail","Fail To Remove It !");
            ui->platform->clear();
            ui->username->clear();
            ui->password->clear();
        }
    }

原文地址:https://www.cnblogs.com/vfdxvffd/p/11624147.html

时间: 2024-10-01 23:20:36

一个帮你记密码的小程序的相关文章

一个简单的计算分数的小程序

一个简单的计算分数的小程序 代码如下: package Day05; public class ExamGradeDemo { public static void main(String[] args) { char[][] answers = { {'C','B','D','C','A','A','D','C','D','C'}, {'A','C','B','D','C','A','D','C','B','D'}, {'A','C','B','D','B','D','C','A','A','

php一个利用cookie限时发帖的小程序

/* * _timed()用来限制时间,如发帖限制 * @access public 表示函数对外公开 * @param $_now_time 现在时间 * @param $_pre_time 要对比的时间 * @param $_time 限制时间 * @param $_string 要提示的字符 * @return $_now_time-$_pre_time 表示返回过了多少秒 * */ function _timed($_now_time,$_pre_time,$_time,$_string

聊聊程序员如何学习英语单词:写了一个记单词的小程序

背景: 关于英文对程序员的重要性,就不多说了! 英语的学习,有很多,今天也不聊多,只聊英语单词! 关于单词的记忆,找过很多方法,下载过很多软件. 如图(其它不好用的都卸载了): 上图算是我以前用过软件,注意,是以前哦~~~ 意思就是没有坚持下来~~~~ 随时间的推移,最后它们还是被我遗忘了~~~ 为什么???不能:坚持!坚持!坚持! 学习思考: 一直在找方法: 1:下载过联想记忆法.背文章记单词,词根,各种视频~~~ 2:连单词的数据库都网上下载了一份了,期望从数据库的直接记忆单词快些~~~ 通

利用x64_dbg破解一个最简单的64位小程序

最近在研究学习一些逆向的东西,其实之前也涉及到这方面的东西,只是之前的系统和应用,基本上都是32位的,所以直接用od来分析就行了,这方面的资料在网上很多,随便一搜到处都是,不过随着技术的不断发展,64位系统出现了,随之64位的应用也出现了,而od只能分析32位应用,所以一些64位应用,od是没办法分析逆向的,所以,在这里要提到另一个可以用于分析64位应用的调试软件,名字叫x64_dbg.网上对于这款软件的介绍很少,只是说能分析64位应用,具体用法也找不到,不过我找到了它的一个教程,里面有一个最简

做一个类似共享链商家的小程序

当我们想要做一款类似于共享链商家的小城,(微=175-2043*6907)我们该怎么开始?返利分销共享链商家小程序开发 源码下载 共享链依托于微信小程序, 涵盖场景包括电商.零售.教育.医疗.金融等, 其拥有去中心化和分布式账本特点, 实现公平.公正.公开,便捷.安全,高效, 最快实现T+0到账等产品功能: 顾客,使用扫码支付,随机获得消费奖励, 免去在实体店排队等候现金结账的漫长时间: 商户,通过设置让利比率,直接回馈消费者, 免去昂贵广告费用,免找零,零假币,支付即营销. 由于共享链商家是一

使用VSTO写的一个打印工牌/工作证的小程序

转行做HR近2年.最近公司要做工牌,工牌上要打印照片,姓名,工号和部门等信息.一共1000多人,如果手工排版手工打印的话,估计要死人. 于是coding的老毛病又犯了,想写个程序来打印工牌.还是拿最近比较常用vsto来做office插件程序吧.毕竟这个用起来也顺手,因为没有一个hr不会用excel. 一,工牌的大体样子 <图1> 基本元素:企业名称,照片,姓名,工号,部门,企业理念.当然程序并没有限制工卡的内容,这里只是个例子.实际使用时,你可以根据自己的需要来定义格式,定义要打印的内容. 二

文件操作-一个可以直接复制文件数据的小程序

部分名词解释: 文件描述符: 文件描述符(file descriptor) 通常是一个小的非负整数,内核用以标识一个特定进程正在访问的文件,当内核打开一个现有文件或创建一个新文件时,它都返回一个文件描述符. 在读.写文件时,可以使用这个文件描述符: [email protected]:/home/aiyq195/lx/unixc/1# cat file.c#include "apue.h" #define BUFFSIZE 4096 int main(void){ int n; cha

go语言实现一个简单的登录注册web小程序

最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜: 这个例子使用到了beego框架和beedb框架,如果是go新手beego和beedb得自己去google下载安装. 目录结构: index.go package controllers import ( "fmt" "github.com/astaxie/beego"

C# 写的一个生成随机汉语名字的小程序

最近因为要做数据库相关的测试,频繁使用到测试数据,手动添加太过于麻烦,而且复用性太差,因此干脆花了点时间写了一个生成随机姓名和相关数据的类,贴在这里,有需用的同志们可以参考一下.代码本身质量不好,也不算规范,各取所需莫要取笑-.- public class GetRandomName { private static string firstName = @"赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋, 沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜, 戚,谢