亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

QT如何實現用戶登錄注冊

發布時間:2022-06-14 16:55:20 來源:億速云 閱讀:1546 作者:iii 欄目:開發技術

本篇內容主要講解“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如何實現用戶登錄注冊

QT如何實現用戶登錄注冊

結果

QT如何實現用戶登錄注冊

QT如何實現用戶登錄注冊

QT如何實現用戶登錄注冊

到此,相信大家對“QT如何實現用戶登錄注冊”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

三穗县| 依安县| 余干县| 确山县| 乡城县| 宝清县| 华坪县| 百色市| 罗城| 贞丰县| 新乡县| 长岭县| 南召县| 偏关县| 德阳市| 白沙| 石狮市| 昌宁县| 阿合奇县| 河北省| 贵溪市| 东方市| 垫江县| 沙田区| 陇川县| 石屏县| 临高县| 隆昌县| 大理市| 团风县| 滁州市| 额敏县| 湛江市| 黑龙江省| 曲麻莱县| 津市市| 锡林郭勒盟| 呈贡县| 瑞昌市| 旬邑县| 漾濞|