用QT做个注册界面 注册的账号存入sqlite 登陆的时候怎么操作可以读取注册的新账号和密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用QT做个注册界面 注册的账号存入sqlite 登陆的时候怎么操作可以读取注册的新账号和密码相关的知识,希望对你有一定的参考价值。

我想做个登陆界面 里面附带注册功能 但是注册后再实现用注册的账号登陆 应该怎么操作 求高手解答 附带程序更好

widget.h文件:

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlQuery>
namespace Ui
class Widget;

class Widget : public QWidget

Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
public:
QString zhanghao;
QString zhanghaochaxun;
QString mima;
QString yanzheng;
int sign;
QString login;
QString password;
private:
Ui::Widget *ui;
private slots:
void shenqing();
void to();
void denglu();
;
#endif // WIDGET_H

widget.cpp文件:

#include "widget.h"
#include "ui_widget.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QMessageBox>
#include <QString>
#include <QSqlRecord>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)

ui->setupUi(this);
QSqlDatabase db=QSqlDatabase::addDatabase("Qmysql");
db.setHostName("localhost");
db.setDatabaseName("denglu");
db.setUserName("root");
db.setPassword("");
sign=0;
if(db.open())

qDebug()<<"success";

else

qDebug()<<"false";

ui->lineEdit_3->setEnabled(false);
ui->lineEdit_4->setEnabled(false);
ui->lineEdit_5->setEnabled(false);
ui->pushButton_3->setEnabled(false);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(denglu()));
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(to()));
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(shenqing()));

Widget::~Widget()

delete ui;

void Widget::shenqing()

QSqlQuery query;
QSqlQuery cha;
zhanghao="\\""+ui->lineEdit_3->text()+"\\"";
zhanghaochaxun=ui->lineEdit_3->text();
mima="\\""+ui->lineEdit_4->text()+"\\"";
yanzheng="\\""+ui->lineEdit_5->text()+"\\"";
cha.prepare("select * from denglu where name=:sname");
QString str=QString("%1").arg(zhanghaochaxun);
cha.bindValue(":sname",str);
cha.exec();
while(cha.next())

sign=1;
QMessageBox::warning(this,tr("error"),tr("yonghu yi cunzai!"));

if(sign==0)

if(yanzheng==mima)

QString str=QString("insert into denglu(name,password)values(%1,%2)").arg(zhanghao).arg(mima);
query.exec(str);

else

QMessageBox::warning(this,tr("error"),tr("yanzheng password is not right"));



void Widget::to()

ui->lineEdit_3->setEnabled(true);
ui->lineEdit_4->setEnabled(true);
ui->lineEdit_5->setEnabled(true);
ui->pushButton_3->setEnabled(true);

void Widget::denglu()

QSqlQuery up;
login = ui->lineEdit->text();
password = ui->lineEdit_2->text();
up.prepare("select * from denglu where name=:dname");
QString str2=QString("%1").arg(login);
up.bindValue(":dname",str2);
up.exec();
QSqlRecord rec=up.record();
while(up.next())

sign=1;
rec=up.record();
int spassword=rec.indexOf("password");
QString value=up.value(spassword).toString();
if(value==password)

qDebug()<<"denglu chenggong";

else

qDebug()<<"mima cuowu";


if(sign==0)

QMessageBox::warning(this,tr("error"),tr("bu cunzai ci zhanghao"));

widget.ui文件:

我用的是QMYSQL,你要用QSQLITE的话也可以,把这句话:QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");改一下就好,还有就是在程序中加入一句create table的语句,也就是给数据库创建一个表格,这个你应该会吧~~

 

特意给你写一个,赏个脸采纳给分吧~~呵呵~~

参考技术A 注册页面

用户名和密码表单 提交后存入数据库

登陆界面

用户名和密码表单 提交后首先检索数据库用户名是否存在 然后对比该用户名的密码

Windows 编程入门,如何注册账号

第一步:点击立即注册

 

技术分享

第二步:点击注册,用邮箱作为账号注册登录,由于我已经注册了,所以就出现这个页面

 

技术分享

 

第三步:登陆界面

 

技术分享

 

以上是关于用QT做个注册界面 注册的账号存入sqlite 登陆的时候怎么操作可以读取注册的新账号和密码的主要内容,如果未能解决你的问题,请参考以下文章

如何用delphi 做个一个用户登陆界面

基于C++ Qt的飞机大战

基于C++ Qt的飞机大战

基于C++ Qt的飞机大战

手机上登亚马逊账号会关联吗?

电商小程序实战教程-用户登录注册