qt登录界面简单制作,是真的保姆级别了!!!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: qt登录界面简单制作,是真的保姆级别了!!!

qt登录界面简单制作,是真的保姆级别了!!!

第二周工程创新实践:创建一个窗体,设计用户登录的界面(含有用户名、密码),并实现用户登录的功能,要求用户提交的登录按钮时能获取界面中的用户名、密码数据并与数据库中的数据进行匹配,若用户名,密码正确则登录成功,否则登录失败。

不想看的直接百度网盘吧,但是可以的话还是看一看,绝对是看得懂的

链接:https://pan.baidu.com/s/1NnnVLxBxThazBQojbft_rw

提取码:33qv


前期准备(qt创建和数据库表)

首先开始创建我们的qt:

注意一定要是qmake!

然后一直点下一步就可以啦

得到这样的界面就可以啦

在前期我们需要安装一个my sql用于链接我们的数据库,以后看有机会出一个教程不,懒鬼!哈哈哈哈哈哈哈哈哈

如果不想改代码看这里,后面也可以自己来调整代码!!!

我们进入我们的my sql 里面

输入:show databases;

看看有没有这个

没有的话,我们使用,创建一个

创建一个数据库:create database dbtest;

!!!一定要使用

进入数据库:use dbtest(数据库名);

出现这一行小字

使用查看当前数据库的表:show tables;
我们这个qt要用到下面的这个表如果没有就用:create table user(username varchar(8),password varchar(8)); 

我们向里面也添加一点数据

insert into user(username,password) values('user01','abccba');
insert into user(username,password) values('1','21212121');
然后查看表:select * from user (表名);

像my sql数据库个人建议下一个软件来查看,真的方便很多


页面设计

直接点击我们的ui

然后找到这三个控件

标签

输入框

按钮

我的布局

他们的ui名字在选中后都可以在,text那里改


代码

在.pro那里面加一个 sql,我们要连接数据库咩

denglu.pro

QT       += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
    main.cpp \
    mainwindow.cpp
HEADERS += \
    mainwindow.h
FORMS += \
    mainwindow.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

然后我们就分为连接数据库和验证密码两个部分,所以在.h里面声明我们的bool connectDB();,验证我们用的是信号槽所以就不用声明了

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    bool connectDB();
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

我们的main.cpp不需要更改还是老样子

main.cpp

#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

关键部分来了

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlError>
#include <QDebug>
#include <QSqlQueryModel>
#include <QComboBox>
#include <QSqlQuery>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connectDB();//调用数据库
    //我们点击之后信号的触发
    connect(ui->pushButton,&QPushButton::clicked,this,[=](){
        QSqlQuery query1;
        query1.exec("SELECT * FROM user WHERE username");//选择我们的表
        QVariantList userlista;
        QString usert;
        usert=ui->lineEdit->text();//将我们ui界面输入框的值传递到usert里面
        QString passwdt;
        passwdt=ui->lineEdit_2->text();//将我们ui界面输入框的值传递到passwdt里面
        bool T1=false;//设立判断标志
        while(query1.next()){//这个回遍历数据库的值
        qDebug()<<query1.value(0).toString();//在qt界面显示
        qDebug()<<query1.value(1).toString();//在qt界面显示
        if(query1.value(0).toString()==usert&&query1.value(1).toString()==passwdt){
           T1=true;//判断密码和账号是否一致
        }
        }
        if(T1==true){
            QMessageBox::information(this, "成功", "登陆成功");
        }
            else { QMessageBox::information(this, "警告", "用户名或密码错误");}
         query1.execBatch();//再次循环,没有这个你的按钮按一次就没有用了
           });
}
bool MainWindow::connectDB(){
   QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
   db.setPort(3306);//你的地址
   db.setHostName("localhost");
   db.setUserName("root");//你的my sql的账号
   db.setPassword("123456");//你进去时候输入的密码
   db.setDatabaseName("dbtest"); //数据库名
   if(!db.open()){
          QMessageBox::critical(this,"数据库打开失败",db.lastError().text());
          return false;
      }
      else {
          return true;
      }
   }
MainWindow::~MainWindow()
{
    delete ui;
}

问题

数据库问题:

驱动失败(你要看看你有没有安装好一个.dll的资源)

添加链接描述

评论,私发

数据库失败(简单的来说就是没有找到你的my sql,你就要看看你dbtest有没有)

密码失败(就是密码错了)

数库库主机失败(QSqlDatabase db=QSqlDatabase::addDatabase(“QMYSQL”);

db.setPort(3306);这一坨东西)

名字问题

像这个就是没有找到你输入框的名字,我们单机选中之后

这个就是的啦!把这个复制上去

就到这里结束啦,感谢每一次的喜欢

爱你呦!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
JSON Linux 数据安全/隐私保护
Qt实现菠菜登录界面
Qt实现菠菜登录界面
|
存储 数据可视化 关系型数据库
QT实现登录界面(利用MySQL保存数据和邮箱辅助注册)
QT实现登录界面(利用MySQL保存数据和邮箱辅助注册)
QT实现登录界面(利用MySQL保存数据和邮箱辅助注册)
|
1月前
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
40 0
|
1月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
56 8
C++ Qt开发:QTcpSocket网络通信组件
|
1月前
|
区块链
【qt】最快的开发界面效率——混合编程3
【qt】最快的开发界面效率——混合编程
35 1
|
1月前
【qt】最快的开发界面效率——混合编程2
【qt】最快的开发界面效率——混合编程
34 1
|
1月前
【qt】最快的开发界面效率——混合编程1
【qt】最快的开发界面效率——混合编程
36 0
|
1月前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
52 1
|
1月前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
59 3
|
1月前
|
开发框架 数据可视化 编译器
Qt的魅力:探索跨平台图形界面开发之旅
Qt的魅力:探索跨平台图形界面开发之旅
48 1

推荐镜像

更多