服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - QT实现用户登录注册功能

QT实现用户登录注册功能

2022-12-24 15:47一个有头发的程序猿 C/C++

这篇文章主要为大家详细介绍了QT实现用户登录注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下

1、login.h

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef LOGIN_H
#define LOGIN_H
 
#include <QWidget>
 
namespace Ui {
class Login;
}
 
class Login : public QWidget
{
    Q_OBJECT
 
public:
    explicit Login(QWidget *parent = 0);
    ~Login();
 
private slots:
    void on_btn_login_clicked();
    void on_btn_register_clicked();
 
private:
    Ui::Login *ui;
};
 
#endif // WIDGET_H

2、login.cpp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "login.h"
#include "ui_login.h"
#include "register.h"
#include "mainwindow.h"
#include <QMessageBox>
#include <QSqlQuery>
#include <QFile>
#include <QDebug>
 
Login::Login(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Login)
{
    ui->setupUi(this);
    ui->ledit_password->setEchoMode(QLineEdit::Password);
}
 
Login::~Login()
{
    delete ui;
}
 
void Login::on_btn_login_clicked()
{
    QString username = ui->ledit_username->text();
    QString password = ui->ledit_password->text();
 
    if(username == "" ||password == ""){
        QMessageBox::information(this,"警告","输入不能为空",QMessageBox::Ok);
    }else{
 
        QSqlQuery query;
        query.prepare("select username,password from admin where username=:username and password = :password ");
 
        query.bindValue(":username", username);
        query.bindValue(":password", password);
        query.exec();
        if(!query.next())
        {
            //结果集为空
            //执行某操作
            QMessageBox::information(this,"警告","用户名或密码错误!",QMessageBox::Ok);
        }
        else
        {
            QMessageBox::information(this,"提醒","登录成功!",QMessageBox::Ok);
            MainWindow *m = new MainWindow;
            m->show();
            this->close();
        }
    }
 
 
}
 
void Login::on_btn_register_clicked()
{
    Register *r = new Register;
    r->show();
}

3、register.h

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef REGISTER_H
#define REGISTER_H
 
#include <QWidget>
 
namespace Ui {
class Register;
}
 
class Register : public QWidget
{
    Q_OBJECT
 
public:
    explicit Register(QWidget *parent = 0);
    ~Register();
 
private slots:
    void on_btn_logon_clicked();
 
private:
    Ui::Register *ui;
};
 
#endif // REGISTER_H

4、register.cpp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "register.h"
#include "ui_register.h"
#include <QButtonGroup>
#include <QMessageBox>
#include <QRegExp>
#include <QSqlQuery>
 
Register::Register(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Register)
{
    ui->setupUi(this);
 
}
 
Register::~Register()
{
    delete ui;
}
 
void Register::on_btn_logon_clicked()
{
    QString username = ui->ledit_username->text();
    QString password = ui->ledit_pwd->text();
    QString name = ui->ledit_name->text();
    int age = ui->ledit_age->text().toInt();
 
    QButtonGroup *bg=new QButtonGroup(this);
    bg->addButton(ui->rbtn_male,0);//一个值为0
    bg->addButton(ui->rbtn_female,1);//一个值为1
 
    int sel=bg->checkedId();//取到你所选的radioButton的值
 
    QString gender;
 
    switch(sel)
    {
    case 0:
      gender="男";
      break;
    case 1:
      gender="女";
      break;
    default:
      gender="";
    break;
 
    }
 
    QSqlQuery query;
    query.prepare("select username from patient where username=:username");
    query.bindValue(":username", username);
    query.exec();
    if(query.next())
    {
 
        QMessageBox::information(this,"警告","用户名已存在!",QMessageBox::Ok);
 
    }
    else
    {
        query.prepare("insert into patient(username,password,patientName,age,gender)"
                      "values(:username,:password,:patientName,:age,:gender)");
        query.bindValue(":username", username);
        query.bindValue(":password",password);
        query.bindValue(":patientName", name);
        query.bindValue(":age", age);
        query.bindValue(":gender", gender);
 
        query.exec();
        QMessageBox::information(this,"警告","注册成功!",QMessageBox::Ok);
 
    }
}

5、数据库连接代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef CONNECTION
#define CONNECTION
 
#include <QSqlDatabase>
#include <QStringList>
#include <QString>
#include <QDebug>
#include <QSqlQuery>
#include <QMessageBox>
 
static bool createConnection()
{
    //测试用例:连接mysql数据库,做一个基本的sql语句操作
 
    //1、对qt下数据库的驱动进行遍历查看
    QStringList drivers = QSqlDatabase::drivers();
    foreach (QString driver, drivers) {
        qDebug()<<drivers;
 
    }
 
    //2、打开数据库过程
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    //数据库连接的信息进行配置
    db.setHostName("localhost");//设置主机名(数据库所在电脑的名称)
    db.setDatabaseName("medical_system");//设置数据库名称
    db.setUserName("root");
    db.setPassword("123456");
    //db.setPort(3306);//因为是本机,该段代码可省略
 
    if(!db.open()){
        //打开失败的情况
        qDebug()<<"Failed to connect";
 
        //实际情况下我们应该使用图形化窗口提示打开失败
        QMessageBox::critical(0,"无法打开数据库","无法创建",QMessageBox::Yes);
        return false;
    }
 
    return true;
 
 
}
 
#endif // CONNECTION

运行结果

QT实现用户登录注册功能

QT实现用户登录注册功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/junheng0812/article/details/106364553

延伸 · 阅读

精彩推荐
  • C/C++C++中string的模拟实现

    C++中string的模拟实现

    这篇文章主要为大家详细介绍了C++中string的模拟实现,感兴趣的小伙伴们可以参考一下...

    q339511804862021-04-15
  • C/C++如何用C++实现A*寻路算法

    如何用C++实现A*寻路算法

    寻路是游戏比较重要的一个组成部分。因为不仅AI还有很多地方(例如RTS游戏里操控人物点到地图某个点,然后人物自动寻路走过去)都需要用到自动寻路的功...

    KillerAery5852021-11-15
  • C/C++OpenCV实现可分离滤波

    OpenCV实现可分离滤波

    这篇文章主要为大家详细介绍了OpenCV实现可分离滤波,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    我有一個夢想6132021-11-17
  • C/C++利用C语言实现猜数字游戏

    利用C语言实现猜数字游戏

    这篇文章主要为大家详细介绍了利用C语言实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    weixin_533919579312021-10-22
  • C/C++C语言示例讲解switch分支语句的用法

    C语言示例讲解switch分支语句的用法

    这篇文章主要为大家介绍了switch语句,switch语句是我们常见会用到的结构,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职...

    要努力丫!3612022-12-22
  • C/C++利用C++实现最长公共子序列与最长公共子串

    利用C++实现最长公共子序列与最长公共子串

    这篇文章主要给大家介绍了如何利用C++实现最长公共子序列与最长公共子串,文章一开始就给大家简单的介绍了什么是子序列,子串应该比较好理解就不用...

    Treant4172021-04-21
  • C/C++VC6实现激活后台窗口最佳方法

    VC6实现激活后台窗口最佳方法

    这篇文章主要介绍了VC6实现激活后台窗口最佳方法,实例分析了VC操作后台窗口的技巧,需要的朋友可以参考下...

    1Byte5342021-02-28
  • C/C++基于VC 6.0使用C语言实现俄罗斯方块

    基于VC 6.0使用C语言实现俄罗斯方块

    这篇文章主要为大家详细介绍了基于VC 6.0使用C语言实现俄罗斯方块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    田刚4712021-06-26