- 博客(190)
- 收藏
- 关注
原创 【Qt】 QDateTimeEdit | QDial
—外观是否会跟踪数值变化 默认值为true 一般不需要修改。——按下pageUp 或 pageDown 的时候改变的步长。其参数为 0到1 的小数 ( 1完全不透明 0完全透明)—— 时间⽇期的值 如 2000/1/1 0:00:00。——时间⽇期格式. 如yyyy/M/d H:mm。——刻度线之间的相对位置 数字越大 刻度线越稀疏。——单纯⽇期的值. 如 2001/1/1。——单纯时间的值. 如 0:00:00。——按下方向键的时候改变的步长。
2024-09-01 12:21:20
1303
原创 【Qt】 QComboBox | QSpinBox
当前选项改变时发出 此时用户已经明确选择了一个选项 用户操作或者通过 程序操作都会触发这个信号。如: SpinBox 的初始值为1 用户输入-1 SpinBox 会恢复为 1。如:如果 SpinBox的初始值为1 用户输入了 -1 SpinBox会恢复为0。当在下拉框中 选择 好之后 点击提交 就会 在屏幕上打印出 对应的选择内容。当编辑框中的文本改变时发出 (editable 为true时有效)微调框的文本发生改变时会触发 参数int 表示当前的数值。
2024-08-30 20:29:23
1733
原创 【Qt】QLineEdit | QTextEdit
当QLineEdit中的文本改变时 发出此信号 text是新的文本 代码对文本的修改能够触发这个信号。若s1 与 s2 都为空 则 显示 密码为空 若s1 与s2 文本相同 则显示 两次输入的密码一致。当QLineEdit中的文本改变时 发出此信号 text是新的文本 代码对文本的修改不能触发这个信号。当输入框1中的内容 与 输入框2中的内容不一致时 label中显示 两次输入的密码不一致。当输入框1中的内容 和 输入框2中的内容 相同时 label中显示 两次输入的密码一致。
2024-08-30 14:39:56
1710
原创 【Qt】QLCDNumber | QProgressBar | QCalendarWidget
QLCDNumber 显示的数字值 (double) 和 intValue 是联动的。查看右侧框中信息 将当前的 value 值 设为 0 即 进度条从0开始增长。若数字值 大于0 则 使 QLCDNumber 显示的数字值-1。函数 使得 QLCDNumber 显示的数字值 为10。控件生效 并把进度条带颜色的部分的背景色 设置为 红色。平面的显示风格 数字呈现在一个平坦的表面上。函数 获取 QLCDNumber 显示的数字值。QLCDNumber 显示的数字值 (int)
2024-08-29 19:04:13
1262
1
原创 【Qt】常用控件 —— QLabel
在鼠标拖动窗口尺寸的过程中 这个函数就会被反复调用执行 (每次触发一个resizeEvent 事件 都会被调用一次对应的虚函数)像resize 这样的事件 是连续变化的 把窗口尺寸从 A拖到B 这个过程中 会触发出一系列的 resizeEvent。将 QLabel 与单选框类似的控件 绑定伙伴关系 就可以通过 Qlabel 触发 单选框的 选择操作。Qt中 QLabel中写的文本 是可以指定快捷键的 在文本中 使用。—— 设为 true 内部的文本 会自动换行。
2024-08-29 13:28:13
1739
原创 【Qt】常见控件 —— QPushButton | QRadioButton
表示一个按钮text—— 按钮中的文本icon——按钮中的图标iconSize—— 按钮中的图标的尺寸shortCut——按钮对应的快捷键autoRepeat——按钮是否会被重复触发 当鼠标左键按住不放时 如果设为true 则会持续产生鼠标点击事件如果设为false 则必须释放鼠标 再次按下鼠标时才能产生点击事件是单选 按钮 可以在多个选项中选择一个checkable—— 是否能被选中checked。
2024-08-26 16:13:57
866
原创 【Qt】常见控件 —— QWidget(下)
之前推荐使用堆上创建对象 是因为要确保当前控件的生命周期是足够的 以及 要通过 Qt对象树 来释放对象。Qt在编译项目时 就会根据qrc中描述的图片信息 找到图片内容 并且提取出图片的二进制数据。给定相对路径 ./th.jpg -> 在基准目录(D:/)直接找 th.jpg。(为了方便 Qt代码中访问到这个图片 Qt就自己抽象出了 虚拟的目录)如果对应的路径写错 就导致找不到该图片 从而继续使用系统自带的图片。这个目录没有在你的电脑上真实存在 是Qt自己抽象出来的。
2024-08-24 17:55:27
829
原创 【Qt】常见控件 —— QWidget(上)
Qt 中 的 各种控件 都继承自 QWidget类在 Qt designer 右侧 就显示出 QWidget的各种属性并且也可以直接进行编辑。
2024-08-23 21:22:06
785
原创 【Qt】信号和槽
connect的第四个参数 作为 自定义的槽函数即自己定义在Widget窗口下如何操作槽 就是一个 普通的成员函数即自定义槽函数 和 自定义 普通成员函数 相同所以 在widget.h中 添加 共有的成员函数在widget.cpp中 对 自定义槽函数进行定义在Widget窗口中 若按下按钮 显示 按钮已经按下运行程序 按下按钮后 由Widget变为按钮已经按下打开ui界面 拖动(普通按钮) 到右侧框中并修改 为 按钮。
2024-08-23 12:33:49
1788
原创 【Qt】 编辑框 | 按钮 | 坐标系 的 初步了解
this指向的父对象 是 widget 对象 (与前面QLabel用法类似)就可以访问到 form file (ui 文件) 中创建的控件pushButton。若当前按钮为 hello world 则切换为 hello qt。若当前按钮为 hello qt 则切换为 hello world。本这个属性的值 要求在界面上是唯一的 (不能和别人重复)中进行修改 则 对应的白色框中内容也会被修改。同时 点击运行后 生成的文本框 也是可以编辑的。指向父对象 即 widget对象的槽函数。
2024-08-20 20:28:26
724
原创 【Qt】 对象树 与 乱码问题
若字符串本身 是 utf8编码的 但是终端是按照 GBK的方来进行解析 显示 此时就会出现乱码。能自动处理编码方式 所以此时编码方式一致 就能输出正常的汉字了。同时 qDebug() 还可以对 打印的调试日志 统一进行关闭。若在Qt中 想通过打印日志的方式 输出一些调试信息 优先使用。能够在合适的时机(窗口关闭/销毁) 把这些对象统一进行释放。此时的 label 对象 随着 构造函数的结束 就销毁了。是 Qt中的一个类 但是又不会直接使用这个类。
2024-08-20 16:07:20
1255
原创 【Qt 】创建 hello world
在Qt中存在 对象数的概念 本质为 一个 n叉树 即有n个子节点 并且只有一个父节点。向的是 当前构造函数所对应的对象 即 main.cpp 中的 widget对象。QString对应的头文件 已经被很多 Qt内置的其他类间接包含了 因此。一般通过代码来构造界面的时候 通常会把构造界面的代码 放到。使用C++中的new 去创建一个 Qlabel类的对象。Qt中 每个类都有一个对应同名的头文件 所以在。搞了一系列的基础类 来支持 Qt的开发。
2024-08-19 15:47:28
821
原创 【Qt】环境搭建
Qt开发环境 需要安装3个部分1.C++编译器( gcc cl.exe 并不是 Visual studio 编译器只是IDE调用的一个程序)2.Qt SDK(SDK 为软件开发工具包)如: windows 版本 Qt SDK 里 已经内置 了 C++ 的编译器mingw表示 windows 版本的 gcc/g++具体安装的过程中 需要将对应的C++编译器 给一起勾选上虽然说用 VS内置的 cl.exe 作为编译器 也不是不行 但是需要配置很多额外的东西 容易出错3.
2024-08-19 10:19:22
1405
原创 【Qt 】入门介绍
QT用于客户端开发主要是 前端开发中 的 桌面应用开发 (做电脑上的应用程序的)QT 无法开发网页前端 也不能开发移动应用 (官方支持移动应用开发 但是 基本上没有人用)QT 是一个 跨平台的C++用户界面应用程序框架客户端: 直接和用户打交道的这一端的程序如: QQ音乐 steam服务器: 在客户端背后如: 当想使用 滴滴 用来打车时 就会发送订单 将订单发送到服务器去 再通过服务器将订单 交由其他的司机手中。
2024-08-02 17:30:25
632
1
原创 【云备份】客户端实现 及 项目整体总结
项目名称:云备份系统项目功能:搭建云备份服务器与客户端,客户端程序运行在客户机上自动将指定目录下的文件备份到服务器,并且能够支持浏览器查看与下载,其中下载支持断点续传功能,并且服务器端对备份的文件进行热点管理,将长时间无访问文件进行压缩存储。
2023-12-05 18:02:19
2544
51
原创 【云备份】业务处理
所以在service.hpp中 使用 extern 修饰 在cloud命名空间中的DataManger类中的 全局变量 _data 就可以在其他.c 或者.cpp中使用。但是file文件中的filename 是包含路径的 ,所以通过调用FileUtil类的匿名对象 去调用FileName函数 获取文件名称即可。再通过 DataManger类中的 Insert函数 将info中的信息 添加到 _table哈希表中。客户端在下载文件的时候 要每次接收到数据 写入文件后记录自己当前下载的数据量。
2023-12-02 16:32:55
940
73
原创 【云备份】热点管理模块
在hot.hpp中 使用 extern 修饰 在cloud命名空间中的DataManger类中的 全局变量 _data 就可以在其他.c 或者.cpp中使用。调用 cloud命名空间中的DataManger类的 GetOneByRealPath函数 获取 路径文件 a中的备份信息。再调用FileUtil类中的LastATime函数 获取 文件的最后一次访问时间。遍历所有的文件,检测文件的最后一次访问时间,与当前时间进行相减得到差值。2. 遍历备份文件夹 获取所有的文件 进行属性获取 最终判断。
2023-11-29 16:40:32
431
15
原创 【云备份】数据管理模块
分别调用 FileUtil类 中的 Filesize(文件大小) 、 LastMtime( 文件最后一次修改时间)、 LastATime( 文件最后一次访问时间)实例化一个 Config类的对象,借助 Config类 的GetpackDir(压缩包存放路径)、GetPackFileSuffix(压缩包后缀名称)(使用hash表在内存中管理数据,以url的path作为key值,来查询内部存储的数据,查询速度快)哈希表的数据不会重复,所以当key值相同时,info会覆盖之前的数据。
2023-11-27 20:08:38
675
42
原创 【云备份】配置加载文件模块
当线程t1 new后解锁,线程t2获取锁,继续new,就会造成覆盖 丢失数据。使用文件配置加载一些程序运行的关键信息 可以让程序的运行更加灵活。表示 获取到 root_time 对应数据中的string数据。表示 获取到 server_port 对应数据中的int数据。函数实现反序列化 即将body中的数据 放入 root中。(当程序要运行在其他主机上,则不需要修改程序)(服务端所记录的备份文件信息的持久化存储处)(决定非热点文件压缩后存放的路径)表示 获取对应的string数据。
2023-11-27 18:22:10
737
43
原创 【云备份】文件操作实用工具类设计
同样使用stat函数,若返回值小于0则说明访问失败 返回 get fire size faied若访问成功,则 返回 stat结构体的st_mtime即可 表示 文件最后一次修改时间使用stat函数,若返回值小于0则说明访问失败 返回 get fire size faied若访问成功,则 返回 stat结构体的st_atime即可 表示 文件最后一次访问时间。
2023-11-25 18:33:55
855
74
原创 【云备份】第三方库的认识与使用
2.想要使用 json::StreamWriter 进行序列化 ,就需要先借助 json::StreamWriterBuilder 实例化一个 StreamWriter对象。string str= “{“姓名”:“小黑”,“年龄”:19,“成绩”:[58.5,66,35.5]}”;传递一个 json::value的数据对象,将这个对象中的所有的数据 按照 json格式 进行序列化。即 将json格式的字符串 反序列化 解析得到多个数据对象,放入 json::value 对象中。
2023-11-23 20:12:21
456
15
原创 云备份——初步认识及环境搭建
自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中并且能够通过浏览器进行查看并且下载,其中下载过程支持断点续传功能而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间。
2023-11-21 20:04:23
510
86
原创 【MySQL】事务(下)
(如在终端1中查询数据,数据A是属于 50-100 范围内的,并且已经检测到数据A存在于50-100范围内, 但终端2在检测后修改数据A的范围 在100 -200 ,就会导致 终端1中继续检测时,发现。( 以插入举例,最近一次 插入记录的事务 是谁插入的,对应的事务ID是谁,把对应的事务ID放入表中)在终端1 启动事务后,插入 田七的数据到表中 ,此时在终端2启动事务的表中 是查询不到田七的数据。当一个事务,并未commit,就造成 同一个事务内,同样的读取,在不同的时间段,读取到不同的值。
2023-11-14 19:28:34
544
50
原创 【MySQL】事务(中)
说明 任何一个人 不一定 要看到 最新的世界,也不一定 要 看到比较老的世界,只要看到在自己生命周期之内的事情即可。事务1 将表的数据删除 或 提交,事务2 都是看不到的表的变化 ,直到事务2也提交,才可以看到表的变化。所有事务都要有执行过程 ,那么在 多个事务 各自执行多个SQL的时候,就有有可能出现相互影响的情况。当一个事务 在运行 ,另一个 事务 也在运行,这两个事务 在执行过程之中 就可以看作是 并发在运行。比如:你妈妈跟你说 ,那么就别学,要学就学到最好,至于你的学习过程,你妈妈是不关心。
2023-11-13 19:22:28
1742
83
原创 【MySQL】事务(上)
编写sql语句时,有可能一条sql语句是解决不掉问题的,需要一批sql语句共同组合才能完成如:从银行卡A中提钱,向银行卡B转账,将银行卡A中的钱减100,再将银行卡B中的钱加100使用两条sql 语句 才能完成,单独一条语句是完不成操作的事务 是由 一条或者多条事务 构成的集合体,这个集合体 需要共同完成某种任务构成这个集合体的语句,要么全部失败,要么全部成功同样事务规定不同的客户端 看到的数据是不同的事务主要处理 操作量大、复杂度高的数据。
2023-11-13 18:02:49
539
44
原创 【MySQL】索引(下)
创建一张表 articles ,内部包含 约束为 主键 并且 是自增长 的id 、200个字符 的title 、大文本的body。MySQL除了会默认建立主键索引,也可能会按照其他列信息建立的索引,一般这种索引称为 普通索引。key_name表示索引名称为primary ,column_name 表示打在 id这一列上。以第三种方式为例,刚开始test1表中的name只是不为空,再对name添加唯一索引后。此时叶子节点 存储的数据为 构建索引的键值 对应的主键值。
2023-11-04 09:19:18
917
108
原创 【MySQL】 索引(上)
(如:查找 20 -30 区间内的数据,只需找到20 和30 ,以20为起点 ,30作为终点,因为是有序的,所以只需遍历即可)在终端1中的index_db库中,创建test2表,其中包含 约束为主键的 id、不为空的name,存储引擎为。在终端1中的index_db库中,创建test1表,其中包含 约束为主键的 id、不为空的name,存储引擎为。( 拥有的目录项的数量是相同的,每个路上节点保存的目录项变少了, 经过的节点就会变多,整颗树就会变高)
2023-11-02 20:46:16
385
72
原创 【MySQL】 复合查询 | 内外连接
通过第一张表emp中的 员工FORD, 找到对应的领导编号,正好对应第二张emp表的员工编号。对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要。查询和10号部门的工作岗位相同雇员的名字、岗位、工资、部门号 ,但是不包含10号自己的。寻找到emp表的部门号 与 tmp表的部门号 相同的 数据 才是合适的,所以加上。左侧的表按条件拼接(条件满足拼接,条件不满足拼NULL) 右侧表完全显示。左侧表完全显示 右侧的表按条件拼接(条件满足拼接,条件不满足拼NULL)
2023-10-30 13:06:04
2831
98
原创 【MySQL】内置函数
date_add(date,interval d_value_type) (interval后的数值单位 可以是 year minute second day)截取emp表中ename字段的第二个到第三个字符。判断bc在abc中的位置,abc字符串的起始位置为1,由于第二个字符b处 就检测到bc存在,所以返回b所在位置 2。输入 select date_add(‘2023-02-25’,interval 10 day);是因为 每个函数 都是带有 对应的日期的,但是在使用函数时 只会显示对应的功能。
2023-10-29 19:05:21
2312
68
原创 【MySQL】表的增删查改
insert into students values(1,112,‘李四’,‘7777’) on duplicate key update sn=112,qq=‘7777’;insert into students values(14,1,‘赵六’,‘8888’),(15,2,‘田七’,‘9999’);创建一张表 exam_result ,其中包含 主键自增长的id、不为空的姓名、默认值为0.0 的语文成绩。由于插入的数据 sn值 qq值 与表中数据相同,则删除原来表中的数据,再添加新插入的数据。
2023-10-27 17:16:34
2418
100
原创 【MySQL】表的约束
当对应的字段 不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值,通常和主键搭配使用,作为逻辑主键。重新创建 表student,内部包含 主键的id、不为空的名字、唯一键的电话号、唯一键的qq号。创建一张学生表student,包含 主键且自增长的id 、不为空的名字、不为空的电话号、班级号。创建一张表 t12,内部包含 不能为空的名字、 默认为18的年龄、 不能为空且默认为男的性别。
2023-10-23 18:26:24
2014
110
原创 【MySQL】数据库数据类型
创建一张表t6,内部包含 一个bigint类型的id 以及 无符号的浮点数类型的salary,并且salary共有4位,其中2位是小数。创建一张表t5,包含 int类型的id 以及 float类型的salary,并且salary共有4位,其中2位是小数。创建一张表 t10 ,内部包含 date类型的t1 ,datetime类型的t2,timestamp类型的 t3。可当插入 (123,5)时 ,由于 online 的类型为1个比特位,所以只能插入0或者1,所以会报错。
2023-10-21 19:10:48
1972
102
原创 【MySQL】数据库——表操作
在终端2中,进入 var/lib/mysql路径,此时存在一个user_db目录。在终端2中,进入 user_db目录中,发现user1表有三张,而user2表有两张。内部包含成员 int类型的id 、 20字节的名字 、32字节 的用户密码 等。内部包含成员 int类型的id 、 20字节的名字 、32字节 的用户密码 等。charset set字符集 ,若没有指定字符集,则以所在数据库的字符集为准。collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。指定查看user1表结构。
2023-10-18 18:24:32
816
35
原创 【MySQL】数据库——库操作
指令,以此查看数据库的对应内容是否变化创建终端2,并输入 cd /var/lib/mysql 指令,以此查看数据库的对应内容是否变化。( 查找或匹配数据库,就需要进行比较字段,想要被比较,两者就需要先被读出来,此时两者的校验规则应该相同)在test1数据库中,创建 一张表 person ,内部成员为 name,类型为 20个字节。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据。支持数据库,进行字段比较使用的编码,本质是读取数据库中数据的采用的编码格式。
2023-10-17 19:28:09
2325
97
原创 【MySQL】数据库基础
mysql 称之为数据库的客户端mysqld 称之为数据库的服务端mysql本质是一种基于C(mysql) S(myqld)模式的网络服务mysql 是一套提供数据存取的服务的网络程序数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据,即在磁盘中存储的一套数据库方案数据库服务 指的是 mysqld。
2023-10-15 19:19:22
1082
87
原创 【计算机网络】poll | epoll
第三种 小于0等待失败 返回-1如:想要等待下标为1 和2的文件描述符,但是下标为2的文件描述符根本不存在,就会等待失败。作为就绪队列的节点,需要包含文件描述符fd 以及 revent (操作系统告诉用户 关心的文件描述符的那些事件就绪)等待失败 返回-1如:想要等待下标为1 和2的文件描述符,但是下标为2的文件描述符根本不存在,就会等待失败。当特定的文件描述符上有对应的事件发生了,就可以将对应已经发生事件的节点 链入就绪队列中。(每次都需要内核需要告诉用户,关心的文件文件描述符上的那些事件就绪)
2023-10-09 18:58:26
2893
104
原创 【计算机网络】高级IO——select
read/recv 等 文件接口只有一个文件描述符想要 让一个接口等待多个文件描述符,而read等接口是不具备这个能力的操作系统就设计一个接口select,用于多路复用select 作用1.等待多个文件描述符2.只负责等(没有数据拷贝的能力)用户把数据交给操作系统,同样操作系统也要 通过这些输出型参数 把结果 交给用户为了让 用户 和 操作系统之间进行信息传递,就把参数设置为 输入 输出型参数timeout 是一个输入 输出型参数timeout的数据类型 为。
2023-10-05 09:50:20
1239
102
原创 【计算机网络】高级IO初步理解
IO:表示 输入 输出当对方把连接建立好,但是不发数据而我是一个线程,正在调用 read 来读,就会阻塞,一直等数据发送过来即读取条件不满足的情况下,read或recv 只会等待无论是有数据时的拷贝 ,还是没有数据时的等待两者的时间成本,全都算到了用户头上在用户的角度,IO= 等+数据拷贝单位时间内,等的比重越低,IO效率越高当IO条件满足时,称为IO事件就绪用户把数据交给操作系统,同样操作系统也要 通过这些输出型参数 把结果 交给用户。
2023-10-03 18:03:57
1153
67
原创 【计算机网络】数据链路层
局域网是一份公享的资源,当主机A给主机B发送消息时,可同时存在 主机C 给主机D发送消息。在进行报文和有效载荷分离时,发现数据帧是要去macA,而只有主机A的mac地址为macA。从学号转成姓名,先在教室中询问,所有同学收到,只有一名同学处理,其他同学丢弃,从主机B到路由器F,源mac地址 是 主机B 目的mac地址是路由器F。首先 获取F的mac地址,再根据对方的mac地址 封装 mac帧,发送数据。主机A发现自己的mac地址 与 报头的目的mac地址相同,就由主机A接收到。
2023-09-26 11:52:51
1921
114
原创 【计算机网络】IP协议(下)
1. 当一个报文到了某个路由器内部,询问路由器时,首先要告诉路由器自己要去哪里,所以IP报头中包含目的IP。若有两种客户端发送报文,第一种客户端的报文可能进行分片,第二种客户端的报文也可能进行分片,两者可能糅在一起。使用的是 DHCP 技术(子网是由路由器划分好的,局域网的所有主机的IP地址,都是从路由器中申请的)通过偏移量 进行排序,每一个偏移量之间的差值应该是相同的,若差值不同,则中间报文丢失了。发现目的IP122…到了附近,你又不认识路了,又问了一个大爷,询问同济大学怎么走,最后到达同济大学。
2023-09-24 14:57:47
885
93
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人