国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qt 數(shù)據(jù)庫的注冊和登錄功能

這篇具有很好參考價值的文章主要介紹了Qt 數(shù)據(jù)庫的注冊和登錄功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include<QPushButton>
#include <QWidget>
#include <QDebug>
#include <QString>
#include <QMessageBox>
#include <QFile>
#include "client.h"
#include <QFileDialog>
#include <QSqlDatabase>
#include <QSqlQuery>          //執(zhí)行sql
#include<QSqlRecord>         //數(shù)據(jù)庫記錄的類

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

 signals:
    void jump();     //跳轉(zhuǎn)頁面的自定義函數(shù)     信號
public slots:
    void login_solt();   //登錄頁面的自定義的槽函數(shù)

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_loginBtn_clicked();

    void on_cancleBtn_clicked();

    void on_registerBtn_clicked();

private:
    Ui::Widget *ui;
    client *s;

    //定義一個數(shù)據(jù)庫的類對象
    QSqlDatabase db;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    s =  new client;
    //更改窗口標(biāo)題
    this->setWindowTitle("光與夜之戀");
    this->setWindowFlag(Qt::FramelessWindowHint);          //去掉窗口頭部
    //logo圖
    ui->logo->setPixmap(QPixmap(":/qt/a1.webp"));
    ui->logo->setScaledContents(true);
//    //用戶名密碼圖
//    ui->userNamelab->setPixmap(QPixmap(":/qt/q1.webp"));
//    ui->userNamelab->setScaledContents(true);

//    ui->pwdlab->setPixmap(QPixmap(":/qt/2.webp"));
//    ui->pwdlab->setScaledContents(true);

    //設(shè)置賬戶密碼

    ui->pwdEdit->setPlaceholderText("密碼");
    ui->pwdEdit->setEchoMode(QLineEdit::Password);


    //將登錄按鈕連接到自定義的槽函數(shù)中
    connect(ui->loginBtn,&QPushButton::clicked,this,&Widget::login_solt);
    //將取消按鈕連接到自定義的槽函數(shù)中
    connect(ui->cancleBtn,SIGNAL(clicked()),this,SLOT(close()));
    connect(this, &Widget::jump, s, &client::jump_slot);

    //數(shù)據(jù)庫的操作
    if(!db.contains("reginst.db"))
    {
        //添加數(shù)據(jù)庫
        db=QSqlDatabase::addDatabase("QSQLITE");
        //設(shè)置數(shù)據(jù)庫名字
        db.setDatabaseName("reginst.db");

    }
    //打開數(shù)據(jù)庫
    if(!db.open())
    {
        QMessageBox::information(this,"提示","數(shù)據(jù)庫打開失敗");
        return ;
    }
    //準(zhǔn)備sql語句
    QString sql="create table if not exists zh_info("
                "username varchar(10) primary key,"
                "pwd varchar(10))";

    //準(zhǔn)備語句執(zhí)行者
    QSqlQuery querry(db);
    if(!querry.exec(sql))
    {
        QMessageBox::information(this,"失敗","數(shù)據(jù)庫創(chuàng)建失敗");
        return;
    }
}

Widget::~Widget()
{
    delete ui;
}

void Widget::login_solt()
{
    QString username=ui->userNameEdit->text();
    QString pwd=ui->pwdEdit->text();

}

void Widget::on_loginBtn_clicked()
{
    QString username=ui->userNameEdit->text();
    QString pwd=ui->pwdEdit->text();
    //確保每個編輯器中有數(shù)據(jù)
    if(username.isEmpty()||pwd.isEmpty())
    {
        QMessageBox::information(this,"提示","請將信息填充完整");
        return ;
    }
    //準(zhǔn)備sql語句
    QSqlQuery query;
    QString sql = QString("SELECT username, pwd FROM zh_info WHERE username = '%1' AND pwd = '%2'")
            .arg(username).arg(pwd);
    //執(zhí)行查詢
    if (query.exec(sql) && query.next())
    {
        int ret = QMessageBox::information(this, "提示", "登錄成功", QMessageBox::Ok);
        if(ret == QMessageBox::Ok)
        {
            emit jump();
            this->hide();
        }
    }
    else
    {
        //登錄失敗
        QMessageBox::information(this,"失敗","用戶名或密碼錯誤");
    }
}


void Widget::on_registerBtn_clicked()
{
    QString username = ui->userNameEdit->text();
    QString pwd = ui->pwdEdit->text();
    //確保每個編輯器中有數(shù)據(jù)
    if (username.isEmpty() || pwd.isEmpty())
    {
        QMessageBox::information(this, "提示", "請將信息填充完整");
        return;
    }
    //準(zhǔn)備sql查詢語句
    QSqlQuery query;
    QString sql = QString("select username from zh_info where username = '%1'").arg(username);
    //執(zhí)行查詢
    if (query.exec(sql) && query.next())
    {
        //已存在相同用戶名的記錄,無法注冊
        QMessageBox::information(this, "失敗", "該用戶名已被注冊,請重新選擇用戶名");
    }
    else
    {
        //注冊
        sql = QString("insert into zh_info(username, pwd) VALUES('%1', '%2')").arg(username).arg(pwd);
        if (query.exec(sql))
        {
            QMessageBox::information(this, "成功", "注冊成功");
        }
        else
        {
            QMessageBox::information(this, "失敗", "注冊失敗");
        }
    }
}
void Widget::on_cancleBtn_clicked()
{
    ui->pwdEdit->clear();
    ui->userNameEdit->clear();
}

?client.h

#ifndef CLIENT_H
#define CLIENT_H

#include <QDockWidget>
#include <QDebug>
#include <QString>
#include <QMessageBox>
namespace Ui {
class client;
}

class client : public QDockWidget
{
    Q_OBJECT

public slots:
    void jump_slot();
public:
    explicit client(QWidget *parent = nullptr);
    ~client();

private slots:
    void on_pushButton_2_clicked();

private:
    Ui::client *ui;
};

#endif // CLIENT_H

client.cpp

#include "client.h"
#include "ui_client.h"

client::client(QWidget *parent) :
    QDockWidget(parent),
    ui(new Ui::client)
{
    ui->setupUi(this);
    //更改窗口標(biāo)題
    this->setWindowTitle("光與夜之戀");
    //logo圖
    ui->logo->setPixmap(QPixmap(":/qt/592587c702e7f7674a6c7fa72fe21169.jpg"));
    ui->logo->setScaledContents(true);

}

client::~client()
{
    delete ui;
}
void client::jump_slot()
{
    this->show();
}

void client::on_pushButton_2_clicked()
{
 int ret =QMessageBox::information(this,"提示","該男人已經(jīng)溜走",QMessageBox::Ok);
 if(ret==QMessageBox::Ok)
 {
     this->close();
 }
}

?main函數(shù)

#include "widget.h"

#include <QApplication>
#include "client.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
//    client s;
//    QObject::connect(&w,&Widget::login_solt,&s,&client::jump_slot);
    return a.exec();
}

窗口設(shè)計部分

Qt 數(shù)據(jù)庫的注冊和登錄功能,c++,qt,數(shù)據(jù)庫,游戲程序

最終效果圖:

Qt 數(shù)據(jù)庫的注冊和登錄功能,c++,qt,數(shù)據(jù)庫,游戲程序Qt 數(shù)據(jù)庫的注冊和登錄功能,c++,qt,數(shù)據(jù)庫,游戲程序

Qt 數(shù)據(jù)庫的注冊和登錄功能,c++,qt,數(shù)據(jù)庫,游戲程序Qt 數(shù)據(jù)庫的注冊和登錄功能,c++,qt,數(shù)據(jù)庫,游戲程序文章來源地址http://www.zghlxwxcb.cn/news/detail-731525.html

到了這里,關(guān)于Qt 數(shù)據(jù)庫的注冊和登錄功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包