制作书签作文/搜索引擎优化实训
一览全局:
QQ仿真项目
- 一.创建项目添加资源文件
- 二.创建数据库
- 三.自定义标题栏Qt类
- 四.加载样式表标题栏按钮的搭配
- 五.标题栏实现移动窗体
- 六.标题栏按钮连接信号槽
- 七.标题栏双击最大化和还原
- 八.基类窗口实现标题栏按钮信号
- 九.重写基类窗口绘图事件确保设置样式表生效
- 十.用户登录界面设计
- 十一.实现基类窗口的移动
- 十二.配置颜色信息文件
- 十三.登录窗口添加样式表
- 十四.获取圆头像
- 十五.记住密码功能
- 十六.Qt连接MySQL
- 十七.数据库验证账号密码
一.创建项目添加资源文件
可以修改为自己想要的名字.
报错没关系,打开属性设置
能运行说明环境就打架好了.
现在开始添加资源文件
记得按crtl+s
保存.
二.创建数据库
打开电脑的服务
,启动MySQL
在命令提示符
中打开MySQL
.
在Navicat
里面连接MySQL
点击测试连接,若成功点击确定.
新建一个数据库.
新建一个员工账户表.
插入员工账户值.
新建一个公司部门表.
插入公司部门值.
新建一个员工信息表.
插入员工信息.
三.自定义标题栏Qt类
新建一个窗口基础类,窗口的共有属性写在这个里面.
登录窗口继承我们新建的类.
构造函数要构造其父类.
再新建一个标题栏类.Qt Widgets Class
是有ui文件的,Qt Class
没有.
设计TitleBar
的ui文件
.
我打不开文件,我靠( ‵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了,未完待续…
相关文章:

【qt】QQ仿真项目1
一览全局: QQ仿真项目 一.创建项目添加资源文件二.创建数据库三.自定义标题栏Qt类四.加载样式表标题栏按钮的搭配五.标题栏实现移动窗体六.标题栏按钮连接信号槽七.标题栏双击最大化和还原八.基类窗口实现标题栏按钮信号九.重写基类窗口绘图事件确保设置样式表生效十.用户登录界…...

Vue3:shallowRef与shallowReactive
目录 一.shallowRef 和 shallowReactive 1.shallowRef 2.shallowReactive 二.ref 和 reactive 1. ref 2. reactive 三.各自使用场景 1.shallowRef 2.shallowReactive 3.ref 4.reactive 四.shallowRef 使用 五.shallowReactive使用 六.效果 一.shallowRef 和 shal…...

django开发流程3(轮播图)
1.在models中创建一个模板 class Ads(models.Model):title models.CharField(verbose_name"标题", max_length30)image models.ImageField(verbose_name"广告图", upload_to"ads")url models.URLField(verbose_name"链接网址", de…...

MySQL的增删查改(基础)一
一.增 方式1(简写插入): 语法:insert into 表名 values(值,值,值……); 这里insert into 代表要插入一条新数据行,values后面就是该行的值,其中后面的值的…...

深度学习(入门)03:监督学习
1、监督学习简介 监督学习(Supervised Learning)是一种重要的机器学习方法,它的目标是通过“已知输入特征”来预测对应的标签。在监督学习中,每一个“特征-标签”对被称为样本(example),这些样…...

Django——admin创建和使用
1. Django Admin简介 Django Admin是Django框架自带的一个管理后台工具,它允许开发者通过一个直观的Web界面轻松地管理应用中的数据模型。Admin提供了模型的CRUD(Create,Read, Update, Delete)操作,以及数据的批量处理和搜索功能…...

鸿蒙开发(NEXT/API 12)【硬件(取消注册智慧出行连接状态的监听)】车载系统
取消注册智慧出行连接状态的监听。 接口说明 接口名描述[off] (type: ‘smartMobilityStatus’, smartMobilityTypes: SmartMobilityType[], callback?: Callback): void取消注册智慧出行连接状态的监听。 开发步骤** 导入Car Kit模块。 import { smartMobilityCommon } fr…...

JVM中的GC流程与对象晋升机制详解
一、垃圾回收的概念 1.1 什么是垃圾回收? 垃圾回收是自动回收不再使用的对象,从而释放内存的一种机制。通过GC,JVM能够动态地管理内存的分配与回收,避免内存泄漏和溢出。 1.2 GC的重要性 内存管理:GC自动处理对象的…...

SQL:如果字段需要排除某个值但又有空值时,不能直接用“<>”或not in
在 SQL 中,如果字段需要排除某个值但又有空值存在时,不能直接使用“<>”(不等于)或 NOT IN,是因为这些操作会把空值也考虑进去,但通常情况下可能并不希望空值被这样处理。 以下是一些解决方法&#…...

运放模块的选型参数
增益带宽积-----尤其重要: GWB 增益*带宽 压摆率: 高带宽的运放一般都是电流型运放: 注意压摆率计算公式里面的Vopp参数是放大后的电压最大值: 参数,布局一定参考数据手册!!!&…...

win10文件共享设置 - 开启局域网文件共享 - “您没有权限访问,请与网络管理员联系请求访问权限”解决方案
实现步骤: 1、在“网络和共享中心”关闭“密码保护的共享” 2、在“启用和关闭windows功能”中开启SMB文件共享支持。 3、在磁盘安全选项中添加“everyone”用户(重点!) 详细操作: https://blog.csdn.net/Skyirm/a…...

Go基础编程 - 16 - 方法
方法 概述1. 方法定义2. 值方法、指针方法3. 方法集合 匿名字段表达式自定义 error 上一篇:延迟调用(defer) 概述 1. 方法定义 func (receiver T) 方法名(参数列表) (返回值列表){}receiver:接收者参数名T…...

接口报错500InvalidPropertyException: Invalid property ‘xxx[256]‘,@InitBinder的使用
org.springframework.beans.InvalidPropertyException: Invalid property ‘xxx[256]’ of bean class [com.xxl.MailHead]: Invalid list index in property path ‘xxx[256]’; nested exception is java.lang.IndexOutOfBoundsException: Index: 256, Size: 256 从报错可以…...

Web 3.0 介绍
Web 3.0 是互联网的下一代发展阶段,通常被称为去中心化的网络。它与目前的 Web 2.0(以社交媒体、云计算和中心化平台为主导)不同,强调用户对数据和内容的更多掌控,依靠区块链、加密货币、去中心化应用(DApp…...

一起搭WPF界面之界面切换绑定
一起搭WPF界面之界面切换绑定 前言界面填充总结 前言 在主界面中定义Grid网格,界面网格化后,可以模块化搭建界面进行填充。 界面填充 总结 提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅…...

css 数字比汉字要靠上
这个问题通常是由于数字字体的下排的问题造成的,也就是数字的底部边缘位置比汉字的顶部边缘位置更靠下。为了解决这个问题,可以尝试以下几种方法: 使用CSS的vertical-align属性来调整对齐方式。例如,可以将数字的对齐方式设置为to…...

sentinel原理源码分析系列(三)-启动和初始化
本文是sentinel原理源码分析系列第三篇,分析sentinel启动和初始化 启动/初始化 sentinel初始化分两块,静态初始和适配器(包括aop) 静态初始 1. Root EntranceNode 如果我们用一栋楼类比资源调用,root EntranceNode好比一栋楼的大门&…...

计算机网络(九) —— Tcp协议详解
目录 一,关于Tcp协议 二,Tcp报头字段解析 2.0 协议字段图示 2.1 两个老问题 2.2 16位窗口大小 2.3 32位序号和确认序号 2.4 6个标记位 三,Tcp保证可靠性策略 3.1 确认应答机制(核心) 3.2 超时重传机制 3.3 …...

跨境支付专业术语
跨境支付 跨境支付是指支付或者清结算过程发生在两个及以上的国家地区之间、实现了资金跨国跨地区转移的支付行为。 境外本地支付 境外本地支付是指支付和清结算过程同时发生在单个国家或地区境内,资金在本国家或地区内部转移的支付行为。 国际汇款 国际汇款指跨…...

多级目录SQL分层查询
需求:有多级目录,而目录的层级是不固定的,如下图所示: 数据结构: sql语句: <select id"getList" resultType"com.hikvision.idatafusion.dhidata.bean.vo.knowledgebase.KnowledgeBaseT…...

VulnHub-SickOs1.1靶机笔记
SickOs1.1靶机笔记 概述 Vulnhub的靶机sickos1.1 主要练习从互联网上搜取信息的能力,还考察了对代理使用,目录爆破的能力,很不错的靶机 靶机地址: 链接: https://pan.baidu.com/s/1JOTvKbfT-IpcgypcxaCEyQ?pwdytad 提取码: yt…...

【Python】数据可视化之点线图
目录 散点图 气泡图 时序图 关系图 散点图 Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(…...

jupyter使用pytorch
1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…...

Electron 安装以及搭建一个工程
安装Node.js 在使用Electron进行开发之前,需要安装 Node.js。 官方建议使用最新的LTS版本。 检查 Node.js 是否正确安装: # 查看node版本 node -v # 查看npm版本 npm -v注意 开发者需要在开发环境安装 Node.js 才能编写 Electron 项目,但是…...

羽毛类型检测系统源码分享
羽毛类型检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…...

Xiaojie雷达之路---doa估计(dbf、capon、music算法)
Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下雷达信号处理中的dbf、capon、music测角算法,一起来看看吧!!! 前言 本文从信号模型、dbf原理、capon原理、music原理以及代码仿真进行展开描述。 信号模型 阵列接收到…...

十大排序算法总结
完整文档见 排序算法总结——语雀文档 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破…...

大厂AI必备数据结构与算法——链表(三)详细文档
冲冲冲!开干 神马!神马!神马,一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程?还那么详细??真的假的? 那么好,胡广告诉你是假的,哈哈哈哈哈哈哈哈哈…...

一键自动化配置OpenHarmony编译环境
一、概述 本工程旨在对Ubuntu一键初始化配置环境,解决OpenHarmony的编译依赖问题,基于本脚本配置后配合一键下载OpenHarmony代码便能轻松掌控OpenHarmony的下载、编译。 当前建议使用稳定分支Itopen-2.0-Release,该分支是经过多次测试OK的&…...

不同领域的常见 OOD(Out-of-Distribution)数据集例子
以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力: 1. 计算机视觉领域 CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C: 描述:CIFAR-10…...