Qt项目实现登录功能:
思想:
根据登录页面的用户名和密码,去 数据库的用户表中查询是否有这个而用户,如果有就登录没有就提示错误!
数据库。
在数据库建立相应的表格。如下图mysql数据表格。
Qt :
首先创建相应的登录页面。如下图
程序
.pro 文件:
添加 :
QT += sql
.h 文件
#include <QWidget>
#include <QSqlDatabase>
#include <QSqlQuery>
namespace Ui {
class LoginPage;
}
class LoginPage : public QWidget
{
Q_OBJECT
public:
explicit LoginPage(QWidget *parent = 0);
~LoginPage();
void initsql(); //初始化数据库
private slots:
void on_pushButton_clicked();
private:
Ui::LoginPage *ui;
QSqlDatabase db;
QSqlQuery *query;
};
.cpp 文件
#include "loginpage.h"
#include "ui_loginpage.h"
#include <QStackedWidget>
#include <QMessageBox>
#include <QDebug>
#include <QWidget>
LoginPage::LoginPage(QWidget *parent) :
QWidget(parent),
ui(new Ui::LoginPage)
{
ui->setupUi(this);
initsql();
ui->lineEdit_2->setEchoMode(QLineEdit::Password); //隐藏
}
LoginPage::~LoginPage()
{
delete ui;
}
void LoginPage::initsql()
{
//数据库连接
db = QSqlDatabase::addDatabase("QMYSQL"); //那种类型的数据库
db.setHostName("127.0.0.1"); //本机地址
db.setPort(3306); //端口号
db.setDatabaseName("fsjc"); //那个数据库
db.setUserName("root"); //用户名
db.setPassword("123456"); //密码
db.open();
if(!db.open()) //如果数据库打开失败,会弹出一个警告窗口
{
QMessageBox::warning(this, "警告", "数据库打开失败!!");
}
else
{
return;
//QMessageBox::warning(this, "警告", "数据库开启成功!!");
}
}
//跳转到主页面
void LoginPage::on_pushButton_clicked()
{
//获得用户和密码
QString name=ui->lineEdit->text();
QString password=ui->lineEdit_2->text();
QString str=QString("select * from User where Name='%1' and Password='%2'").arg(name).arg(password);
query=new QSqlQuery;
query->exec(str);
query->last();
int record=query->at()+1;
if(record==0){
QMessageBox::information(this,"提示","用户或密码不对",QMessageBox::Ok);
}
else{
QStackedWidget *stackWidget;
QWidget *widget=this->parentWidget()->parentWidget();
qDebug()<<widget;
if(!widget->inherits("QStackedWidget")){
return;
}
if(widget){
stackWidget=(QStackedWidget *)widget;
stackWidget->setCurrentIndex(2);
}
// emit signalsdataPage();
}
}
版权声明:本文为weixin_42692504原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。