您好,登錄后才能下訂單哦!
本篇內容主要講解“QT如何實現用戶登錄注冊”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“QT如何實現用戶登錄注冊”吧!
具體代碼如下
#include "widget.h" #include "ui_widget.h" //窗口設置 #include <QStyle> //數據庫連接 #include <QtSql/QSqlQuery>//數據庫操作函數 #include <QtSql/QSqlError>//輸出錯誤信息 #include <QMessageBox>// #include <QSettings>//讀寫配置文件 #include <QtDebug> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //窗口設置 //設置窗口不顯示標題,無邊框 setWindowFlags(Qt::Window|Qt::FramelessWindowHint); //設置最小化、關閉按鈕 //獲取最小化、關閉按鈕圖標 QPixmap minPix = style()->standardPixmap(QStyle::SP_TitleBarMinButton); QPixmap closePix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton); ui->mintoolButton->setIcon(minPix); ui->closetoolButton->setIcon(closePix); ui->mintoolButton->setStyleSheet("bakground-color:tranparent:"); ui->closetoolButton->setStyleSheet("bakground-color:tranparent:"); connect(ui->mintoolButton,&QPushButton::clicked,this,&Widget::showMinimized); connect(ui->closetoolButton,&QPushButton::clicked,this,&Widget::close); //數據庫連接 //連接數據庫 //查看當前支持的數據庫的驅動 qDebug()<<QSqlDatabase::drivers(); QSqlDatabase DB;//創建一個數據庫的文件 //加載數據庫的文件 QString aFile="./dataBase.db"; if(aFile.isEmpty()) { qDebug()<<" 數據庫文件加載失敗 " ; return ; } //打開數據庫 DB=QSqlDatabase::addDatabase("QSQLITE");//創建QSQLITE數據庫連接 DB.setDatabaseName(aFile); //數據庫名 if(!DB.open()) { //沒有數據庫文件則創建文件 qDebug()<<"數據庫文件打開失敗"; qDebug()<<DB.lastError().text();//輸出錯誤信息 } qDebug()<< " 打開數據庫文件成功 " ; //從配置文件中讀取用戶名和密碼: QSettings setting("config.ini",QSettings::IniFormat); QString account = setting.value("section/account").toString(); QString password = setting.value("section/password").toString(); ui->accountEdit->setText(account); ui->passwordEdit->setText(password); //用戶注冊,向數據庫插入數據 connect(ui->registerButton,&QPushButton::clicked,this,[=](){ //接受用戶輸入: QString account = ui->accountEdit->text();//用戶賬號 QString password = ui->passwordEdit->text();//密碼 //創建自己需要使用的表格 QSqlQuery query(DB); if(!query.exec("create table user(account varchar(255) primary key, password varchar(255))")) { qDebug() << "Error: Fail to create table."<< query.lastError(); } else { qDebug() << "Table created!"; } //插入數據 QString qs = QString("insert into user(account,password) values('%1','%2')") .arg(account).arg(password); if(query.exec(qs)) //如果插入成功 { QMessageBox::information(this,"注冊","注冊成功"); } else { QMessageBox::information(this,"注冊","注冊失敗"); qDebug()<<query.lastError().text();//輸出錯誤信息 //return; } //查看數據 //查看數據庫中有的表格的名字 qDebug()<<"查看數據庫中所有的表:"; QStringList str_table=DB.tables(); qDebug()<<str_table; //查詢數據庫中的數據 qDebug()<<"查看數據庫中數據"; query.prepare ("SELECT * FROM user"); query.exec(); while(query.next()) { qDebug()<<QString("account:%1,password:%2"). arg(query.value("account").toString()).arg(query.value("password").toString()); } }); //用戶登錄:查詢數據 connect(ui->loginButton,&QPushButton::clicked,this,[=](){ //接受用戶輸入: QString account = ui->accountEdit->text();//用戶賬號 QString password = ui->passwordEdit->text();//密碼 //查詢數據 QSqlQuery query;//操作數據庫 QString qs = QString("select * from user where account ='%1' and password='%2'"). arg(account).arg(password); if(!query.exec(qs))//如果沒有查到記錄 { qDebug() << query.lastError().text();//輸出錯誤信息 return; } //獲取查詢的數據 if(query.next())//獲取到數據 { QMessageBox::information(this,"登錄","登錄成功"); connect(tw,&TestWidget::testSigna,this,&Widget::show);//顯示主窗口 //在配置文件中記錄用戶賬號密碼 if(ui->checkBox->isChecked())//選中,也就是用戶已經登錄 { //創建配置文件 QSettings setting("config.ini",QSettings::IniFormat);//配置文件在工程目錄下 //把用戶賬號密碼寫到配置文件中 setting.beginGroup("section");//節開始 setting.setValue("account",account); setting.setValue("password",password); setting.endGroup();//結束 } } else { QMessageBox::information(this,"登錄","登錄失敗"); } }); } Widget::~Widget() { delete ui; }
#按鈕的ui實現
結果
到此,相信大家對“QT如何實現用戶登錄注冊”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。