<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了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實現
結果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45