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

运行结果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百创科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值