当前位置: 首页 > wzjs >正文

网站做微信支付宝支付接口百度一下首页设为主页

网站做微信支付宝支付接口,百度一下首页设为主页,python从入门到实践,明年做哪些网站致富1.实现目标 本次实现通过SQLite制作一个简易的登录窗口,当点击注册按钮时,登录窗口会消失,会出现一个新的注册界面;完成注册或退出注册时,注册窗口会消失,重新出现登录窗口。注册过的用户信息会出现在SQLi…

1.实现目标

本次实现通过SQLite制作一个简易的登录窗口,当点击注册按钮时,登录窗口会消失,会出现一个新的注册界面;完成注册或退出注册时,注册窗口会消失,重新出现登录窗口。注册过的用户信息会出现在SQLite的表中。

 想要完成本次目标,我们需要完成以下步骤:

  1. 需要两个界面,登录界面:MainWindow(QMainWindow);注册界面:SIghUp(QWidget)
  2. 启动程序时,SQLite进行初始化、并创建表数据
  3. 点击注册按钮,登录窗口消失,从重新出现一个新的注册窗口
  4. 在注册界面中点击注册按钮时,初始化SQLite,并把当前界面的账户和密码插入到数据库表中,注册成功后注册界面消失,登陆界面出现;在注册界面中点击退出按钮,注册成功后注册界面消失,登陆界面出现
  5. 在登录界面上输入注册过的账户和密码,点击登录时,检查数据库表中的信息,如果正确则登录成功。

2.具体实现 

Mainwindow(登录界面)

首先展示头文件所需的槽函数和成员变量

接下来是登录界面,登录界面的ui如下,只需要记住其中的几个控件即可

 ui界面创建完毕后,我们需要设置显示密码初始化SQLite

 显示密码的槽函数

void MainWindow::on_checkBox_toggled(bool checked)
{if(checked)ui->passwd->setEchoMode(QLineEdit::Normal);elseui->passwd->setEchoMode(QLineEdit::Password);
}

初始化数据库 

void MainWindow::initSqlite()
{sqlite=QSqlDatabase::addDatabase("QSQLITE");//设置数据库名称sqlite.setDatabaseName("User.db");//检查数据库是否能打开if(!sqlite.open()){QMessageBox::critical(this,"数据库打开失败",sqlite.lastError().text());return;}qDebug()<<"SQLite连接成功,并创建 [User.db] 数据库!!!";//创建数据库QString sql=("CREATE TABLE  IF NOT EXISTS User(\id integer primary key autoincrement,\username ntext unique not NULL,\password ntext not NULL)");QSqlQuery query;if(!query.exec(sql)){QMessageBox::critical(this,"数据库创建失败",sqlite.lastError().text());return;}qDebug()<<"SQLite连接成功,并创建 [User.db] 数据库!!!";}

初始化完毕,点击登录按钮,获取其LineEdit上的字符串与数据库进行查找,查找成功跳转界面,失败则报错

登录按钮的槽函数 

void MainWindow::on_logIn_clicked()
{//获取界面上的用户和密码QString account=ui->account->text();QString passwd=ui->passwd->text();QString sql=QString("SELECT * FROM User where username='%1'and password='%2'").arg(account).arg(passwd);QSqlQuery query(sql);if(!query.next()){QMessageBox::critical(this,"登录失败","请重新检查账户和密码");}else{qDebug()<<"登录成功";QMessageBox::information(this,"登录认证","登录成功!");QWidget *w = new QWidget;w->show();this->close();}}

点击注册按钮,关闭当前界面,创建新的注册界面并显示 

 注册按钮的槽函数

void MainWindow::on_signUp_clicked()
{//关闭当前界面this->close();SignUp * signup=new SignUp;signup->show();}

SignUp(注册界面)

先展示头文件,只用到了两个槽函数

 接下来是ui界面

 点击注册按钮时,初始化数据库并把界面上的账户和密码插入进数据库中;注册成功后该界面关闭,重新显示登录界面

注册按钮的槽函数

void SignUp::on_signUp_clicked()
{MainWindow *w=new MainWindow;w->initSqlite();//获取lineEdit上的账户和密码QString account=ui->signUpAc->text();QString passwd=ui->signUpPs->text();QString sql=QString("insert into user(username,password) values('%1','%2');").arg(account).arg(passwd);QSqlQuery query;//判断执行结果if(!query.exec(sql)){qDebug()<<"insert into error";QMessageBox::information(this,"注册认证","注册失败!");}else{qDebug()<<"insert into success";QMessageBox::information(this,"注册认证","注册成功!");MainWindow *w = new MainWindow;w->show();this->close();}}

 点击退出按钮,没有注册,关闭当前界面并重新显示登录界面

退出按钮的槽函数 

void SignUp::on_quit_clicked()
{//关闭当前窗口this->close();MainWindow *w=new MainWindow;w->show();
}

 3.整体代码展示

MainWindow.

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();void initSqlite();private slots:void on_checkBox_toggled(bool checked);void on_signUp_clicked();void on_logIn_clicked();private:Ui::MainWindow *ui;QSqlDatabase sqlite;};
#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "signup.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);ui->passwd->setEchoMode(QLineEdit::Password);initSqlite();//初始化SQLite
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::initSqlite()
{sqlite=QSqlDatabase::addDatabase("QSQLITE");//设置数据库名称sqlite.setDatabaseName("User.db");//检查数据库是否能打开if(!sqlite.open()){QMessageBox::critical(this,"数据库打开失败",sqlite.lastError().text());return;}qDebug()<<"SQLite连接成功,并创建 [User.db] 数据库!!!";//创建数据库QString sql=("CREATE TABLE  IF NOT EXISTS User(\id integer primary key autoincrement,\username ntext unique not NULL,\password ntext not NULL)");QSqlQuery query;if(!query.exec(sql)){QMessageBox::critical(this,"数据库创建失败",sqlite.lastError().text());return;}qDebug()<<"SQLite连接成功,并创建 [User.db] 数据库!!!";}void MainWindow::on_checkBox_toggled(bool checked)
{if(checked)ui->passwd->setEchoMode(QLineEdit::Normal);elseui->passwd->setEchoMode(QLineEdit::Password);
}void MainWindow::on_signUp_clicked()
{//关闭当前界面this->close();SignUp * signup=new SignUp;signup->show();}void MainWindow::on_logIn_clicked()
{//获取界面上的用户和密码QString account=ui->account->text();QString passwd=ui->passwd->text();QString sql=QString("SELECT * FROM User where username='%1'and password='%2'").arg(account).arg(passwd);QSqlQuery query(sql);if(!query.next()){QMessageBox::critical(this,"登录失败","请重新检查账户和密码");}else{qDebug()<<"登录成功";QMessageBox::information(this,"登录认证","登录成功!");QWidget *w = new QWidget;w->show();this->close();}}

SignUp.h

#ifndef SIGNUP_H
#define SIGNUP_H#include <QWidget>namespace Ui {
class SignUp;
}class SignUp : public QWidget
{Q_OBJECTpublic:explicit SignUp(QWidget *parent = nullptr);~SignUp();private slots:void on_quit_clicked();void on_signUp_clicked();private:Ui::SignUp *ui;
};#endif // SIGNUP_H

SignUp.cpp

#include "signup.h"
#include "ui_signup.h"
#include "mainwindow.h"SignUp::SignUp(QWidget *parent) :QWidget(parent),ui(new Ui::SignUp)
{ui->setupUi(this);
}SignUp::~SignUp()
{delete ui;
}void SignUp::on_quit_clicked()
{//关闭当前窗口this->close();MainWindow *w=new MainWindow;w->show();
}void SignUp::on_signUp_clicked()
{MainWindow *w=new MainWindow;w->initSqlite();//获取lineEdit上的账户和密码QString account=ui->signUpAc->text();QString passwd=ui->signUpPs->text();QString sql=QString("insert into user(username,password) values('%1','%2');").arg(account).arg(passwd);QSqlQuery query;//判断执行结果if(!query.exec(sql)){qDebug()<<"insert into error";QMessageBox::information(this,"注册认证","注册失败!");}else{qDebug()<<"insert into success";QMessageBox::information(this,"注册认证","注册成功!");MainWindow *w = new MainWindow;w->show();this->close();}}

 4.总结

本次通过SQLite数据库制作了一个简单的登录注册窗口,因为比较简单所以没有用QSS进行美化,数据库的设计也比较简单。感兴趣的话大家可以在此基础上进行添加和改进。

 

http://www.dtcms.com/wzjs/42546.html

相关文章:

  • 东营利津网站建设南宁最新消息今天
  • 青浦区网站建设公司2024年度关键词
  • 快速微信网站设计seo关键词怎么优化
  • 网站品牌形象设计怎么做微信营销软件群发
  • phpcms企业网站源码推广目标怎么写
  • 注册一个投资公司需要多少钱整站优化提升排名
  • 手机端网站开发语言网页制作成品模板网站
  • vr模式的网站建设公司b站视频未能成功转码
  • 免费做代理的项目郑州网站优化seo
  • 吉林省建筑市场监管公共服务平台石家庄seo全网营销
  • 怎么可以自己做网站被百度收到凤凰网全国疫情实时动态
  • 亚马逊网站开发者平台企业seo顾问服务阿亮
  • 手机版网站案例广州做网站的公司哪家好
  • 长沙企业网站开发微联讯点南昌企业网站建设
  • wordpress所见即所得编辑器佛山seo整站优化
  • bootstrap做购物网站广州百度seo优化排名
  • 做网站需要什么配置服务器成都百度推广联系方式
  • 网站建设与管理案例教程第三版答案网店营销策划方案ppt
  • 起诉网站服务平台搜索引擎优化培训班
  • 512m内存做网站免费发广告的网站大全
  • 比较好的做外贸网站河南自助建站seo公司
  • 做兽设的网站网站查询域名解析
  • 买网站需要多少钱网站排名点击工具
  • 商城网站制作公司seo网站推广方式
  • 给人做赌博网站犯法嘛百中搜优化软件
  • 深圳网站建设合同范本推广渠道有哪些平台
  • 保定市网站制作公司企业培训课程清单
  • 郑州男科医院哪家权威东莞百度搜索优化
  • 怎样进行网站板块建设抖音seo怎么做
  • 获取网站漏洞后下一步怎么做网站友情链接美化代码