用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 登陆的时候怎么操作可以读取注册的新账号和密码的主要内容,如果未能解决你的问题,请参考以下文章