QT实现用户登录注册功能

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

1、login.h

#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

#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

#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

#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、数据库连接代码

#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)

相关推荐

  • pyqt5利用pyqtDesigner实现登录界面

    本文实例为大家分享了pyqt5利用pyqtDesigner实现登录界面的具体代码,供大家参考,具体内容如下 为便于操作 界面和逻辑分离 逻辑类: import sys import pymysql from loginUI import * //导入 from PyQt5.QtWidgets import * from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import * from PyQt5.QtGui import

  • 手把手教你实现漂亮的Qt 登录界面

    前言 最近在使用Qt5,Qt Creator做一个管理系统类的项目,自然需要用到登录界面,故记录一下登录界面的制作.其中一些功能的实现也得益于之前Qt5基础视频不规则窗口部分的学习. 手把手教你实现漂亮的登录界面 首先看一下成品. 第一步.新建一个Qwidget项目 没必要用qmainwindow,不需要那些菜单,一般用qwidget就可以,注意勾选ui. 第二步.添加界面组件 1.添加容器 调整容器为合适大小,同时调整整个画布为合适大小. 2.添加按钮,标签,文字组件 构思: 账号密码部分使用

  • 如何利用PyQt5制作一个简单的登录界面

    目录 环境配置 额外工具配置 生成UI界面 总结 环境配置 新建python虚拟环境并激活 conda create -n pyqt python=3.8 conda activate py36 安装pyqt5 pip install pyqt5 安装pyqt5-tools pip install pyqt5-tools 在PyCharm中新建一个qtdemo工程,并使用这个新建的python虚拟环境作为工程环境 额外工具配置 依次点击File---Settings---Tools---Exte

  • python通过PyQt5实现登录界面的示例代码

    目录 1. pyQt5简单使用 安装 界面化操作 2.开始实现登录界面 今天为大家介绍一个利用开发登录界面模板,基于pyqt5库,pyqt5这也一个PythonGUI界面开发的库,非常强 本例,展示了通过登录界面打开主界面的实现方式. 在开始实现登录界面前,先给大家普及一下PyQt5的安装以及使用 1. pyQt5简单使用 安装 pip install PyQt5 pip3.5 install pyqt5-tools 界面化操作 1.在win+R中输入designer并敲回车,即可启动Desig

  • PyQt5实现用户登录GUI界面及登录后跳转

    PyQt5是强大的GUI工具之一,通过其可以实现优秀的桌面应用程序.希望通过一个简单的登录页面可以让大家顺利入坑,如有不妥之处还请大佬指点改正! 导入业务需要的所有的扩展包. import sys # 系统参数操作 from PyQt5.QtWidgets import * # 模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 from PyQt5.QtCore import * # 此模块用于处理时间.文件和目录.各种数据类型.流.URL.MIME类型.线程或进程 from PyQt5

  • PyQt5实现登录页面

    本文实例为大家分享了PyQt5实现登录页面的具体代码,供大家参考,具体内容如下 效果图: python代码: import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap, QPainter, QColor, QFont, QIcon from PyQt5.QtWidgets import QWidget, QVBoxLayout, QApplication, QLabel, QDesktopWidget, QHBo

  • pyqt5实现登录界面的模板

    本文实例为大家分享了pyqt5登录界面的实现模板,供大家参考,具体内容如下 说明 本例,展示了通过登录界面打开主界面的实现方式. 其中,登录的账号与密码判断都比较简单,请大家根据自己需要,自行完善补充. [如下代码,完全复制,直接运行,即可使用] import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ################################

  • pyqt5制作登录窗口的详细过程

    首先要用designer设计ui界面 打开后就和c#一样拖动控件做ui界面 保存后是xxx.ui文件 再添加个工具 Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 这个工具是把ui文件转换为py文件的 在ui文件右键选择新加的工具就会生成xxx.py了 import sys import os from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5

  • QT实现用户登录注册

    本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下 #include "widget.h" #include "ui_widget.h" //窗口设置 #include <QStyle> //数据库连接 #include <QtSql/QSqlQuery>//数据库操作函数 #include <QtSql/QSqlError>//输出错误信息 #include <QMessageBox>//

  • PyQt5设置登录界面及界面美化的实现

    写在前面 前一段时间博主刷了半个多月的LeetCode算法题,刷的归类为简单的那些题,做到自己简直要怀疑人生.想着人生在世,何苦这么为难自己呢,何不做点自己擅长的东西.想到博主还有个项目没做完呢,于是开始捣鼓起来.项目的最终成果是要写一个软件,把所有研究的内容可视化的展示出来,研究的内容都写的差不多了,还差个登录界面,于是就开始元气满满的干起来. 先上编译环境: Python3.7 pycharm2020专业版 PyQt5 博主习惯用Spyder做编译器,但如果做大项目,最好还是用pycharm

随机推荐