【Qt登录界面】

article/2025/9/15 7:49:53

Qt登录界面

文章目录

  • Qt登录界面
  • 前言
  • 一、创建项目
  • 二、创建数据库及用户表
  • 三、登录界面设计
  • 四、注册界面设计
  • 五、效果图
  • 六、参考教程


前言

第一次在这上面写文章,没啥经验,如果有啥不当的地方,请各位大佬批评指正。我刚学Qt不久,结合了网上的一些教程,做了一个登录界面,主要是为了记录一下自己练习的过程。
该程序主要包含一个登录界面和一个注册界面以及一张用户表。只有用户表中的用户才能够在登录界面登录成功;若用户不存在,则可以先通过注册界面进行注册后再进行登录。

一、创建项目

打开Qt Creator 新建一个项目取名为testLogin,项目建好之后如下图所示:

在这里插入图片描述

二、创建数据库及用户表

要在Qt中使用数据库模块时,需要先在testLogin.pro文件中加入如下语句:

QT += sql

然后在widget.h文件中加入如下头文件:

#include<QSqlDatabase>
#include<QSqlQuery>
#include<QSqlError>
#include<QMessageBox>

并且声明两个函数:

private:void createDB();//连接数据库void createTable();//创建用户表

在widget.cpp中定义好上面两个函数:

void Widget::createDB()
{db=QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("D:\\Users\\Desktop\\testLogin.db");//我这里连接的是用navicat创建在桌面上的数据库testLogin.dbif(db.open()==false){QMessageBox::warning(this,"DataError",db.lastError().text());}
}void Widget::createTable()
{QString strTable=QString("create table Users(username varchar(25),password varchar(25))");//创建的一张包含username,password的用户表QSqlQuery query;query.exec(strTable);
}

最后再在widget.cpp的构造函数中调用这两个函数:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);createDB();createTable();
}

运行程序,此时可以用navicat查看到创建好的用户表如下所示:
在这里插入图片描述

三、登录界面设计

登录界面如下图所示:
在这里插入图片描述在这里插入图片描述
界面上的控件数字分别对应右侧所示的对象名

对于用户名和密码那两个控件,可以将各自的placeholderText属性设置成提示的内容

界面布局设置好之后,选择登录按钮,右键选择Go to Slot…,在弹出的界面单机clicked(),在跳转的界面里添加如下代码即可实现登录功能:

void Widget::on_loginBtn_Login_clicked()
{QString strUserName=ui->userNameEdit_Login->text();QString strPassWord=ui->passWordEdit_Login->text();if(strUserName=="")QMessageBox::warning(this,"提示","用户名不能为空");else if(strPassWord=="")QMessageBox::warning(this,"提示","密码不能为空");else{QString strSelect=QString("select * from Users where username='%1'and password='%2'").arg(strUserName).arg(strPassWord);QSqlQuery query;query.exec(strSelect);int row=queryRowCount(query);if(row==1){QMessageBox::information(this,"提示","登录成功");}elseQMessageBox::warning(this,"错误","用户名或密码错误");}
}

上面那个queryRowCount()函数我是参考Qt如何连接数据库(以sqlite为例实现登录和注册界面)这位大佬的,同时本次练习也是主要参考这位大佬的教程写的。如果有侵犯到大佬的版权,请联系我删贴。该函数的定义如下:

int Widget::queryRowCount(QSqlQuery query)
{int initialPos=query.at();int pos=0;if(query.last()){pos=query.at()+1;}elsepos=0;query.seek(initialPos);return pos;
}

四、注册界面设计

在登录界面中有一个注册按钮,其功能是点击该按钮,即可跳转到注册界面中,为此,需要新建一个Qt Designer Form Class,步骤为:选择testLogin文件,然后右键选择add new…就会弹出如下对话框:
在这里插入图片描述
这里我取的名字是testregister,然后创建完成之后,双击下图所示文件:
在这里插入图片描述
在弹出的界面中设计出注册界面如下:
在这里插入图片描述在这里插入图片描述选中注册按钮,右键选择clicked()槽函数,然后在跳转的界面中输入如下代码即可完成注册按钮:

void testRegister::on_registetBtn_Register_clicked()
{QString strUserName=ui->userName_Register->text();QString strPassWord=ui->passWord_Register->text();if(strUserName==""||strPassWord=="")QMessageBox::warning(this,"提示","用户名或者密码不能为空");else{QString strInsert=QString("insert into Users values('%1','%2')").arg(strUserName).arg(strPassWord);QSqlQuery query;if(query.exec(strInsert))QMessageBox::information(this,"提示","注册成功");elseQMessageBox::warning(this,"提示","注册失败");Widget *log=new Widget();this->close();//注册完毕后关闭当前注册界面log->show();//在关闭注册界面后显示登录界面}}

在注册完毕,要显示登录界面需要现在register.h中加入下面语句:

#include"widget.h"

然后再用同样的方法,为注册界面中的返回按钮编写槽函数,代码如下:

void testRegister::on_returnBtn_clicked()
{Widget *reg_r=new Widget();reg_r->show();//显示登录界面this->close();//关闭当前注册界面
}

此外,在前面的登录界面中还有一个注册按钮,该按钮的功能就是需要调出注册界面;首先在widget.h中加入下面包含语句:

#include"testregister.h"

然后再给登录界面中的注册按钮添加一个clicked()函数,即可完成整个程序,该按钮clicked()函数代码如下:

void Widget::on_registerBtn_Login_clicked()
{testRegister *reg=new testRegister();reg->show();       //显示注册界面this->close();    //关闭当前登录界面}

五、效果图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注册成功后用户表中数据:
在这里插入图片描述

用注册后的用户名登录,显示登录成功:
在这里插入图片描述
在这里插入图片描述

六、参考教程

Qt如何连接数据库(以sqlite为例实现登录和注册界面)
QT通过点击按钮弹出新的窗口(新建弹出式窗口)


http://chatgpt.dhexx.cn/article/5UCyVYZn.shtml

相关文章

QT 简单的QT用户登录界面

简单的QT用户登录界面 一、简单描述 在登录界面输入用户名和密码正确之后才进入欢迎界面。 例子打包&#xff1a;链接: https://pan.baidu.com/s/1HEpNFghMDrBguMt93aRJ_A 提取码: bg4n 二、效果 三、工程文件结构 四、源文件 1、LoginForm02.pro文件 QT widgets guiSOUR…

一文读懂qt界面设计(分裂器,布局,拉伸,各种属性设置)

可以先看看我这个文章&#xff1a;qt关于界面设计中的一些知识总结_我是标同学的博客-CSDN博客_qt 水平伸展 现在我们来正式开始讲解。 布局种类 qt中能称为布局管理器的有如下6个&#xff1a; 水平布局&#xff08;QHBoxLayout&#xff09;垂直布局&#xff08;QVBoxLayout…

Qt界面开发(一)(各种控件以及图表)

注&#xff1a;资源主要来源&#xff1a;http://www.qtcn.org/bbs/u/110085 &#xff08;刘大神&#xff09; 如若侵权&#xff0c;请联系删除。 本文只是将作品集合到起来&#xff0c;方便大家一起学习。 资源集合已经放到 链接&#xff1a;https://pan.baidu.com/s/1sVvQE8…

嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面)

1、创建一个QT工程 new project —> Application —> Qt Widgets Application —> choose…&#xff08;注意不要有中文路径&#xff09;填写名称&#xff08;我写的名称为class2&#xff09;和创建路径&#xff08;D:\qt\qt_demo\class2&#xff09; —> 填写类名…

QT界面布局和设计

一、设计 对功能和模块进行分析&#xff0c;然后设计对应的模块&#xff0c;将每个模块都用widget展示作为组件。工程结构示例&#xff1a;二、完成模块 代码分别设计各个组件&#xff0c;合适即可三、主界面连接 主界面连接各个子模块。在这里插入代码片#include "AutoFl…

tomcat配置url跳转_tomcat安装目录详解

打开tomcat的解压之后的目录可以看到如下的目录结构&#xff1a; 1.bin&#xff1a; bin目录主要是用来存放tomcat的命令&#xff0c;主要有两大类&#xff0c;一类是以.sh结尾的&#xff08;linux命令&#xff09;&#xff0c;另一类是以.bat结尾的&#xff08;windows命令&a…

【转】URL访问地址和Tomcat项目部署中不得不说的小秘密(JAVA之Tomcat服务器)

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…

tomcat配置url跳转_Tomcat

Tomcat介绍 1.Web服务器介绍 Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等 Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术 Web服务器通常产生一个html响应以便浏览器浏览 2.常见Web服务器 We…

web服务之Tomcat

目录 Tomcat介绍 Tomcat组件 Tomcat组件 JavaServlet JSP容器 Tomcat部署步骤 关闭防火墙&#xff0c;将安装 Tomcat 所需软件包上传到 /opt 目录下 安装 JDK 设置 JDK 环境变量 安装启动 Tomcat tomcat的主要目录 Tomcat 虚拟主机配置 创建test1和test2项目目录和文…

Tomcat实现Https服务

Tomcat实现Https服务 1、JDK生成证书 进入JDK/bin目录键盘按下shift 鼠标右键&#xff0c;选择“在此处打开命令窗口”打开DOS命令窗键入命令”keytool -v -genkey -alias myKey -keyalg RSA -keystore F:/jdk1.6.0_45/myKey.keystore” 证书密码123456 2、配置tomcat 配置…

【转】URL访问地址和Tomcat项目部署中不得不说的小秘密

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…

【tomcat路径匹配源码分析】搞懂tomcat中web.xml配置servlet的url-pattern为“/“和“/*“的区别

搞懂tomcat中web.xml配置servlet的url-pattern为"/"和"/*"的区别 前言结论Servlet匹配规则&#xff08;tomcat源码&#xff09;分析举个例子路径配置为/导致拦截静态资源问题的解决方案 总结 原文地址 前言 我在写原生javaWEB项目时&#xff0c;想通过注册…

通过URL请求tomcat服务器直接下载文件

从一个服务器上下载文件&#xff0c;是很常见的情况。通常我们想通过URL来访问直接下载一个文件&#xff0c;对于Tomcat服务器而言&#xff0c;是非常简单的&#xff0c;Tomcat本身就是作为一个web服务器的&#xff0c;通过简单的配置就可以实现。 配置如下&#xff1a; 1、在…

tomcat配置使得访问http协议(或者直接输入www.网址.com) 直接跳转访问https协议

由于https协议比http协议安全,但是如果网站安装了ssl(如果没有安装,可百度搜索"阿里云ssl免费证书",阿里官网会提供安装方法,比较简单),发现每次输入网址必须得手动输入https,而且大家习惯输入www.网址.com,会直接导致访问不到网站的.下面介绍直接修改tomcat配置,使得…

URL请求省略端口号和项目名访问Tomcat部署的项目

前言&#xff1a;很多时候Tomcat部署好Web项目之后访问项目的时候都需要加上端口号和项目名&#xff0c;如&#xff1a;http://localhost:8080/项目名&#xff0c;下面我会介绍可以不用输端口号和项目名便可以直接进行访问的方法&#xff0c;其实就是修改Tomcat下conf目录中的s…

让tomcat服务器使用url rewrite

第一步&#xff1a;首先到这里下载 http://tuckey.org/urlrewrite/ 稳定版&#xff1a;urlrewrite-2.6.0.jar 第二步&#xff1a;将urlrewrite-2.6.0.jar 放到tomcat的lib目录下。 第三步&#xff1a;将urlrewrite-2.6.0.jar 放到Netbeans的工程目录下的…

Tomcat之中文URL问题

背景 如果你需要访问带有中文路径的URL怎么办&#xff1f;比如说mp3、mp4文件。 比如这样的路径&#xff1a; http://127.0.0.1:8080/LZPlayer/mp3/1168/徐小凤 - 顺流逆流.mp3 那么&#xff0c;需要去修改Tomcat的配置文件&#xff0c;让他支持中文即可。 步骤 修改配置文…

URL访问地址和Tomcat项目部署中不得不说的小秘密

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…

opencv——边缘检测算法(总结)

前言 笔记。 一、边缘检测算法 边缘检测算法是指利用灰度值的不连续性质&#xff0c;以灰度突变为基础分割出目标区域。对铝铸件表面进行成像后会产生一些带缺陷的区域&#xff0c;这些区域的灰度值比较低&#xff0c;与背景图像相比在灰度上会有突变&#xff0c;这是由于这…

用OpenCV的边缘检测

使用OpenCV的边缘检测 代码如下&#xff1a; #include "infer.h"using namespace cv; using namespace std;int main::getResult(string fileName) {Mat src imread(fileName);Mat dst;cvtColor(src, src, COLOR_BGR2GRAY);blur(src, src, Size(3, 3));Canny(src,…