【qt】QQ仿真项目1

一览全局:在这里插入图片描述

QQ仿真项目

  • 一.创建项目添加资源文件
  • 二.创建数据库
  • 三.自定义标题栏Qt类
  • 四.加载样式表标题栏按钮的搭配
  • 五.标题栏实现移动窗体
  • 六.标题栏按钮连接信号槽
  • 七.标题栏双击最大化和还原
  • 八.基类窗口实现标题栏按钮信号
  • 九.重写基类窗口绘图事件确保设置样式表生效
  • 十.用户登录界面设计
  • 十一.实现基类窗口的移动
  • 十二.配置颜色信息文件
  • 十三.登录窗口添加样式表
  • 十四.获取圆头像
  • 十五.记住密码功能
  • 十六.Qt连接MySQL
  • 十七.数据库验证账号密码

一.创建项目添加资源文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以修改为自己想要的名字.
在这里插入图片描述

在这里插入图片描述
报错没关系,打开属性设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能运行说明环境就打架好了.
在这里插入图片描述
现在开始添加资源文件
在这里插入图片描述
在这里插入图片描述

记得按crtl+s保存.
在这里插入图片描述

二.创建数据库

打开电脑的服务,启动MySQL
在这里插入图片描述
命令提示符中打开MySQL.

在这里插入图片描述
Navicat里面连接MySQL
在这里插入图片描述
点击测试连接,若成功点击确定.
在这里插入图片描述

新建一个数据库.

在这里插入图片描述
在这里插入图片描述

新建一个员工账户表.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入员工账户值.
在这里插入图片描述

新建一个公司部门表.

在这里插入图片描述
在这里插入图片描述
插入公司部门值.
在这里插入图片描述
新建一个员工信息表.

在这里插入图片描述
插入员工信息.
在这里插入图片描述

三.自定义标题栏Qt类

新建一个窗口基础类,窗口的共有属性写在这个里面.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
登录窗口继承我们新建的类.
在这里插入图片描述
构造函数要构造其父类.
在这里插入图片描述
再新建一个标题栏类.Qt Widgets Class是有ui文件的,Qt Class没有.
在这里插入图片描述

在这里插入图片描述
设计TitleBarui文件.
在这里插入图片描述
我打不开文件,我靠( ‵o′)了
在这里插入图片描述
找到解决方案了.
在这里插入图片描述
在这里插入图片描述
找到Qt下的编译器下的designer.exe文件添加.
在这里插入图片描述
在这里插入图片描述
问题就解决了.
在这里插入图片描述
设置了2个label,4个pushButton.

在这里插入图片描述
添加公共接口,使其他窗口可以设置标题栏属性.
在这里插入图片描述
在这里插入图片描述

四.加载样式表标题栏按钮的搭配

添加一个样式表设置类.
在这里插入图片描述
在这里插入图片描述
定义为静态函数,方便类名直接调用.
在这里插入图片描述
在这里插入图片描述
定义宏函数,方便获取资源文件里的样式表文件路径.

在这里插入图片描述
在其他类调用静态样式表加载成员函数.
在这里插入图片描述
设置标题栏按钮显示.
在这里插入图片描述
在这里插入图片描述
设置默认显示一种按钮搭配,多一个枚举参数类型.
在这里插入图片描述
在这里插入图片描述

现在可以演示一下标题栏:
在这里插入图片描述

在这里插入图片描述

五.标题栏实现移动窗体

重写父类的鼠标事件函数.

void mousePressEvent(QMouseEvent*event)override;
void mouseMoveEvent(QMouseEvent*event)override;
void mouseReleaseEvent(QMouseEvent*event)override;

在这里插入图片描述

在这里插入图片描述
鼠标事件函数的实现
在这里插入图片描述
将标题栏添加到基础窗口中.

在这里插入图片描述
基类窗口设置为无边框的setWindowFlag(Qt::FramelessWindowHint);
在这里插入图片描述

登录窗口中调用从基类窗口继承的标题栏.

在这里插入图片描述

在这里插入图片描述
演示:
在这里插入图片描述
标题栏被移动到了基类窗口的左上角这个位置.因为无边框窗口,所以只有点击标题栏里面只能移动.
在这里插入图片描述

现在可以看到,标题栏的宽度和基类窗口的宽度不一样.
可以用重写绘图事件函数.
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述

六.标题栏按钮连接信号槽

按钮点击的信号和槽,信号槽的连接都初始化在initConnect()里面.
在这里插入图片描述
记得要在init()里面调用.
在这里插入图片描述
可以信号连接信号,因为是外部调用,并不是标题栏调用.
最大化和还原按钮是变化的,所以设置的槽函数,但是还是要在槽函数中发出信号.
setVisible(false)是会隐藏组件的,如果在布局中,位置会被占!
在这里插入图片描述
效果:
在这里插入图片描述

七.标题栏双击最大化和还原

设置数据成员来保存还原窗体的位置和大小.
在这里插入图片描述
对其进行设置和获取.
在这里插入图片描述

在这里插入图片描述
重写鼠标双击事件,实现最大化和还原.
在这里插入图片描述
在这里插入图片描述

八.基类窗口实现标题栏按钮信号

添加槽函数,用于相应标题栏的信号.
在这里插入图片描述
先连接信号槽.
在这里插入图片描述
当最小化的时候,要判断窗口的类型,工具窗口是隐藏.
在这里插入图片描述

在这里插入图片描述
演示:
这是最大化时的截图,现在按钮就都可以实现对于操作了.
在这里插入图片描述
再设置一些共有槽函数,在继承中,最好析构函数加上virtual,删除父类时防止子类不析构.
在这里插入图片描述
在这里插入图片描述

九.重写基类窗口绘图事件确保设置样式表生效

在这里插入图片描述
在这里插入图片描述

十.用户登录界面设计

添加组件的名字要与css文件里面一样哦.
添加动态属性,用来确定是否添加样式表.
在这里插入图片描述
运行效果:
在这里插入图片描述

十一.实现基类窗口的移动

在这里插入图片描述
在这里插入图片描述
判断是否为最大化,最大化不允许移动.

在这里插入图片描述
虽然现在窗口可以移动了,但是移动标题栏会出现问题,因为两个鼠标事件都触发了.
不用调用父类的鼠标事件,加上event->accept()就可以了.

在这里插入图片描述

十二.配置颜色信息文件

添加一个配置文件类.
在这里插入图片描述
在这里插入图片描述
保存配置文件和获取配置文件.

在这里插入图片描述
在基类窗口中添加一个保存颜色的数据成员.

在这里插入图片描述
在这里插入图片描述

十三.登录窗口添加样式表

在这里插入图片描述
在这里插入图片描述
这是是根据动态属性值来是否设置背景颜色.
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述

十四.获取圆头像

在这里插入图片描述
这里用了图片的叠加,用一个圆底QPixmap mask来进行叠加.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行效果:
在这里插入图片描述

十五.记住密码功能

也是用的配置文件来保存和获取文件.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

十六.Qt连接MySQL

创建一个Qt数据库类.
在这里插入图片描述
添加数据库模块.
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
数据库连接用单例设计模式.
在这里插入图片描述
在这里插入图片描述
连接数据库前可以先看看自己有的数据库驱动.

qDebug() << QSqlDatabase::drivers();

打开属性链接器系统里面的控制台,可以看到调试打印信息.

在这里插入图片描述
然后连接数据库.
在这里插入图片描述

在登录窗口调用一下.
在这里插入图片描述
运行结果:
在这里插入图片描述

十七.数据库验证账号密码

在这里插入图片描述
QSqlQuery类来查询语句.
在这里插入图片描述
可以用navicat里面的查询来确定代码里面的sql语句是否是正确的.
在这里插入图片描述
在登录按钮的槽函数调用.

在这里插入图片描述

现在的运行效果:
在这里插入图片描述

OK,到这里登录界面就差不多OK了,未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/884434.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 1235. 规划兼职工作

1.题目基本信息 1.1.题目描述 你打算利用空闲时间来做兼职工作赚些零花钱。 这里有 n 份兼职工作&#xff0c;每份工作预计从 startTime[i] 开始到 endTime[i] 结束&#xff0c;报酬为 profit[i]。 给你一份兼职工作表&#xff0c;包含开始时间 startTime&#xff0c;结束时…

第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)

这节记录下如何使用redis缓存数据库。 第一步&#xff1a; 先在服务器端安装redis&#xff0c; 下载地址&#xff1a;Releases tporadowski/redis GitHub。 第二步&#xff1a; 安装redis客户端可视化管理软件redisDesktopmanager Redis Desktop Manager - Download 第…

革命题材网络电影《突进夹金山》将于10月上线

“长征万里险&#xff0c;最忆夹金山”。这座雪山不仅见证了红军战士们的英勇与牺牲&#xff0c;也成为了中国革命历史上的一座重要里程碑。 革命题材网络电影《突进夹金山》&#xff0c;作为四川省2024年度重点影视剧项目以及纪念红军长征90周年献礼的红色作品&#xff0c;由谢…

SPI驱动学习七(SPI_Slave_Mode驱动程序框架)

目录 一、SPI_Slave_Mode驱动程序框架1. Master和Slave模式差别1.1 主设备 (Master)1.2 从设备 (Slave)1.3 示例 2. SPI传输概述2.1 数据组织方式2.2 SPI控制器数据结构 3. SPI Slave Mode数据传输过程4. 如何编写程序4.1 设备树4.2 内核相关4.3 简单的示例代码4.3.1 master和s…

DarkLabel2.4版本导入MOT17数据集

目录 背景导入效果MOT17数据集说明DarkLabel导入视频导入gt文件 背景 做目标追踪&#xff0c;目前找了一圈开源工具&#xff0c;发现DarkLabel还是很好用的&#xff0c;提供自动目标跟踪&#xff0c;标注很方便。 由于目标追踪我用的是bytetrack&#xff0c;官网是用mot17数据…

python爬虫案例——抓取链家租房信息(8)

文章目录 1、任务目标2、分析网页3、编写代码1、任务目标 目标站点:链家租房版块(https://bj.lianjia.com/zufang/) 要求:抓取该链接下前5页所有的租房信息,包括:标题、详情信息、详情链接、价格 如: 2、分析网页 用浏览器打开链接,按F12或右键检查,进入开发者模式;因…

5.MySQL表的约束

目录 表的约束空属性&#xff08;非空约束&#xff09;默认值&#xff08;default约束&#xff09;列描述&#xff08;comment&#xff09;zerofill主键&#xff08;primary key约束&#xff09;自增长&#xff08;auto_increment&#xff09;唯一键&#xff08;unique约束&…

数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall

数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall 数据集-目标检测系列-鲨鱼检测数据集 shark 数据量&#xff1a;6k 数据样例项目地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/Te…

开启争对目标检测的100类数据集-信息收集

DataBall 助力快速掌握数据集的信息和使用方式。 目标检测项目数据集样例地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/TechLinkX/DataBall-detections-100s 请关注我们的专栏&#xff1a;DataBal…

Excel 绝对值怎么求?ABS 函数用法详解

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4ca; ABS函数在Excel中用于计算数值的绝对值&#xff0c;这在处理财务、科学和日常办公等领域的数据时非常有用。今天&#xff0c;我们将通过一些具体的日常工作案例&#xff0c;来展示ABS函数的实际应用。 ABS函…

《深度学习》自然语言处理 统计、神经语言模型 结构、推导解析

目录 一、语言转换方法 1、如何将语言转换为模型可以直接识别的内容 1&#xff09;数据预处理 2&#xff09;特征提取 3&#xff09;模型输入 4&#xff09;模型推理 二、语言模型 1、统计语言模型 1&#xff09; 案例&#xff1a; • 运行结果&#xff1a; • 稀疏…

BAAI 团队发布多模态模型 Emu3

在人工智能的浩瀚海洋中&#xff0c;一艘名为Emu3的创新之船正在破浪前行&#xff0c;为我们展示了多模态AI的无限可能。这个由Meta AI研究团队开发的革命性模型&#xff0c;通过简单而巧妙的"下一步预测"机制&#xff0c;实现了文本、图像和视频的统一处理。 Emu3的…

linux服务器部署filebeat

# 下载filebeat curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.23-linux-x86_64.tar.gz # 解压 tar xzvf filebeat-7.17.23-linux-x86_64.tar.gz# 所在位置&#xff08;自定义&#xff09; /opt/filebeat-7.17.23-linux-x86_64/filebeat.ym…

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner&#xff08;存储制备器&#xff09;1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy&#xff08;回收策略&#xff09;3、allowVolumeExpansion&#xff08;允许…

探索基于知识图谱和 ChatGPT 结合制造服务推荐前沿

0.概述 论文地址&#xff1a;https://arxiv.org/abs/2404.06571 本研究探讨了制造系统集成商如何构建知识图谱来识别新的制造合作伙伴&#xff0c;并通过供应链多样化来降低风险。它提出了一种使用制造服务知识图谱&#xff08;MSKG&#xff09;提高 ChatGPT 响应准确性和完整…

告别背锅侠!29个空场景及测试方法的实战指南

想必大家在日常的测试工作中&#xff0c;经常会碰到以下这些场景&#xff1a; 场景一&#xff1a; 测试人员&#xff1a;有一个数据为空的场景还没有验证。 研发人员&#xff1a;这个场景不会出现&#xff0c;因为没有删除逻辑。 场景二&#xff1a; 研发人员&#xff1a;…

蓝桥杯模块二:数码管的静态、动态实现

模块二训练 1.静态显示 一、数码管电路图 二、电路分析 1.数码管电路分析 端口分公共端和段码&#xff0c;先用公共端控制一个数码管&#xff0c;再用段码实现显示数字。共阳数码管公共端输入高电平&#xff0c;段码输入低电平实现点亮 2.锁存器 Y7控制段码&#xff0c;Y6控…

【含文档】基于Springboot+微信小程序 的中心医院用户移动端(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

全志科技发布T536高性能智慧工业芯片,飞凌嵌入式率先推出配套核心板

2024年9月24日下午&#xff0c;全志科技在中国国际工业博览会上成功举办了其最新产品——T536高性能智慧工业芯片的全球首发发布会。这款芯片采用创新的4核Cortex-A55与RISC-V混合架构&#xff0c;主频分别达到1.6GHz和600MHz&#xff0c;并集成了2TOPS算力的NPU&#xff0c;吸…

生信初学者教程(四):软件

文章目录 RRstudioLinux系统其他软件本书是使用R语言编写的教程,用户需要下载R和RStudio软件用于进行分析。 版权归生信学习者所有,禁止商业和盗版使用,侵权必究 R R语言是一种免费的统计计算和图形化编程语言,是一种用于数据分析和统计建模的强大工具。它具有丰富的统计…