- 博客(67)
- 收藏
- 关注
原创 [杂学笔记]STL容器的迭代器、CMake与Makefile、完美转发、NULL与nullptr的区别 、GDB调式命令、平衡树与红黑树
例如上述代码,如果不使用完美转发的话,传递左值还是右值都是会调用左值版本的函数,因为在传参的过程中,会发生一次拷贝,拷贝的对象在赋值给参数,拷贝的数据他是左值,所以就只会调用左值版本的函数了。红黑树是一个近似平衡的二叉树,他对于高度没有那么严格的要求,对于最长的分支不大于最短分支的2倍即可,那么插入和删除也就不需要频繁的去旋转了,那么插入和删除的效率也就会大大的提高,搜索效率相当于AVL树来说,就没有那么高了。如果传递的是右值,就会推到为普通类型的传参,那么就会变成 int&&的参数了。
2025-03-26 12:01:45
765
原创 [算法笔记]一段数量变化的无序区间的中位数查找--双堆法
顾名思义是采用两个堆,一个是大堆,一个是小堆,同时维护这两个堆的数据个数,小堆的数据个数最多可以比大堆的数据个数多一个,那么的话,如果是奇数个数的区间的话,那么中间值就放在了小堆的堆顶,如果是偶数个数的区间的话,那么就是根据要求了,选左边作为中间值的话,就是大堆的堆顶,如果是右区间作为中间值的话,就是小堆的堆顶了。对于堆的top函数调用,如果堆为空的话,调用该函数会报错的,所以刚开始插入的时候,让其自动先放到小堆中,之后再插入的时候,就可以判断是否比小堆大了,大的话放到小堆里面,否则放到大堆里面。
2025-03-26 09:48:51
453
原创 [杂学笔记]结构体大小的内存对齐规则、继承与组合的区别、New和malloc的区别、define与const的区别、如何保证线程安全、乐观锁与悲观锁
结构体大小的内存对齐规则、继承与组合的区别、New和malloc的区别、define与const的区别、如何保证线程安全、乐观锁与悲观锁
2025-03-25 11:37:31
901
原创 [杂学笔记]锁为什么影响效率、I/O多路复用、三种I/O多路复用模型的区别、atomic原子操作类、MySQL的持久性是如何实现的
锁为什么影响效率、I/O多路复用、三种I/O多路复用模型的区别、atomic原子操作类、MySQL的持久性是如何实现的。在 C++ 中,std::atomic 是标准库提供的用于实现原子操作的模板类,它可以保证在多线程环境下对共享数据的操作是原子的,从而避免数据竞争问题,且不需要显式使用锁机制。该类可以被看做是一个T类型的值,对该值的所有操作都是原子的。
2025-03-21 11:15:55
582
原创 [杂学笔记]继承的应用场景、如何避免内存泄漏、函数模板的理解、多线程的应用场景、DNS解析的过程
用户输入网址,形成请求之后,需要将网址转化为IP地址,首先会在浏览器的缓存中查找,该网址是否是最近访问的网址,如果是的话,会有记录,查找到直接返回即可。如果没有的话,会形成一个DNS请求,首先会发送给操作系统,操作系统也有自己的DNS缓存,会检查缓存中有没有,有就返回,没有的话会将DNS请求发送给本地域名服务器。之后生成一个具体的函数实例了。如上述代码所示,当出了作用域的时候,析构a对象,a对象的析构函数会销毁A对象,但是A对象此时还有一个B节点内部的指针指向A节点,所以析构不了。
2025-03-19 10:58:59
866
原创 [模拟实现]unique_ptr、shared_ptr智能指针--C++版本的代码实现
这里的引用计数必须实时的在每一个智能指针内部更新,所以我们需要将引用计数单独提取出来,而不是有一个新的智能指针就去挨个更改其他智能指针内部的引用计数的值。unique_ptr是在auto_ptr的基础之上,解决了多个智能指针同时指向一个对象,发生管理权转移,只有一个智能指针指向了对象,其他的都是管理的空对象的行为。不可以使用拷贝构造和赋值重载是因为使用之后,会产生智能指针管理空对象,如果在使用该智能指针的话,就会出现问题了,但是对于将亡值这类,就不存在了,这类对象的管理权转移给别人之后他们也就销毁了。
2025-03-18 19:44:00
644
原创 [项目]MyWechat微服务即时通信项目--客户端核心类与工具函数的编写
在MyWechat微服务即时通信项目中,客户端核心类与工具函数的编写至关重要。用户信息类用于管理用户相关数据,确保用户身份等信息的有效存储。消息类包含丰富字段以描述消息内容,通过工厂方法高效创建消息实例。聊天会话信息类负责维护聊天会话的各项信息。工具函数涵盖日志宏函数,方便记录程序运行状态;获取时间戳与格式化时间函数,助力时间相关操作;读取和写入文件函数;图片的转化函数。
2025-03-12 16:15:52
1519
原创 [算法笔记]前缀和问题--算法讲解与例题
本文主要介绍前缀和算法,涵盖一维与二维情况。在一维前缀和算法中,通过特定方式生成前缀和数组,借此能高效计算区间和。二维前缀和算法同理,有其生成前缀和数组的方法以及计算区间和的策略。随后,文中借助具体题目阐述前缀和算法应用,像“寻找数组的中心下标”以及“除自身以外数组的乘积”,展示如何运用该算法解决实际编程问题,帮助读者理解与掌握前缀和算法在不同场景下的运用。
2025-03-12 11:57:16
1101
原创 [数据结构]并查集--C++版本的实现代码
并查集就可以很好的解决该问题,并查集是一个森林,他内部的每一棵多叉树,都是一个按照特定条件划分出来的相同属性的集合。并查集是使用数组的形式去表示森林的结构,森林中的每一颗树的每一个节点,采用的是双亲指针法,也就是说每一个节点,只能找到他的父节点,没法向下找子节点。每个存储的元素会被映射为一个下标序号,数组的值,存放的是他的父节点的下标。例如a[i] = n;那么就代表序号为i的元素的父节点是序号为n的元素。
2025-03-10 17:09:08
827
原创 [算法笔记]printf的格式化输出、C/C++的循环输入、std::istream对象与bool值的转换、C++的cctype标准库常用函数、getline与stringstream流
printf的格式化输出、C/C++的循环输入、std::istream对象与bool值的转换、C++的cctype标准库常用函数、getline与stringstream流
2025-03-07 10:32:50
847
原创 [应用案例]APP如何更新的
我们平时使用的APP程序常常一段时间就需要进行更新处理,那么是如何进行更新的呢?更新的时候如果失败了呢?以及APP如何知道自己需要更新呢?
2025-03-05 18:50:31
1271
原创 [杂学笔记]面向对象特性、右值引用与移动语义、push_back与emplace_back的区别、读写锁与智能指针对锁的管理、访问网站的全过程
面向对象特性、右值引用与移动语义、push_back与emplace_back的区别、读写锁与智能指针对锁的管理、访问网站的全过程
2025-03-04 16:26:30
854
原创 [杂学笔记]HTTP1.0和HTTP1.1区别、socket系列接口与TCP协议、传输长数据的时候考虑网络问题、慢查询如何优化、C++的垃圾回收机制
当网络出现问题的时候导致的数据丢包的问题,并非是TCP协议能够解决的问题了,因为TCP协议是在网络通畅,双方连接没有断开的情况下,维护发送但没有收到应答的时候,但是一旦网络出问题了,就相当于连接断开了,那么在销毁这个连接的时候,TCP缓存的数据也就跟着销毁了。之后再服务端的应用层,维护一个指针指向整体数据的已经发送并且得到确认的位置,那么就分成了两个区域,指针左边就是已发送已确认区域,右边是没发送或者发送了没有确认的区域,这样的话,该指针指向的位置,就是客户端收到数据的位置。
2025-03-04 13:45:59
965
原创 [杂学笔记]迭代器的原理、进程与线程的区别、.vector的内存管理、vim的命令模式指令集合、多线程的最大问题、HTTP协议与HTPPS协议区别
当然也可以手动的去管理内存:resize和reserve函数就可以预先申请一部分空间,当我们知道自己要用多大的空间时,可以直接一次申请n个大小的空间,防止多次扩容了。对于释放内存,clear函数只是释放了元素,而并非将内存还给操作系统,可以使用shrink_to_fit函数将vector的容量调整为与元素数量相同,也就是释放多余的内存空间。vector的默认构造函数通常不会立即申请内存空间,而是等到有元素插入的时候才会去申请空间,申请的空间一般会比现有的元素大很多,防止频繁的扩容导致性能的降低。
2025-02-28 16:12:25
1395
原创 [杂学笔记]TCP和UDP的区别、异步I/O与I/O多路复用区别、事物的隔离级别、指针和引用的区别、继承体系下析构函数必须是虚函数、map与哈希map的区别
是虚函数的话,子类重写析构函数会将继承下来的虚函数表存放父类析构函数的地址进行重写,那么父类指针指向子类函数的指针,在调用析构函数的时候,就会调用子类的析构函数了,而且在析构的时候,会先析构子类后析构父类,防止先析构父类之后,子类的析构函数执行逻辑还会去访问父类对象,所以会先子类后父类。如果不是的话,在父指针指向子类对象的情况下,调用析构函数,会调用静态绑定的父对象的析构函数,那么就会导致子类的新创建的变量内容无法进行析构处理,就会造成内存泄漏的问题。
2025-02-28 13:23:50
1034
原创 [杂学笔记]OSI七层模型作用、HTTP协议中的各种方法、HTTP的头部字段、TLS握手、指针与引用的使用场景、零拷贝技术
零拷贝技术是一种高效的数据传输技术,其核心目标就是减少在计算机系统在传输数据时的拷贝次数,从而降低CPU的使用率,提供数据传输效率,提供系统的性能。例如在从磁盘中读取数据并通过网络发送的过程当中就涉及到至少四次的拷贝。第一次拷贝:操作系统将数据从磁盘读取到内核空间的缓冲区。第二次拷贝:将数据从内核空间缓冲区拷贝到用户空间的应用程序缓冲区。第三次拷贝:应用程序处理完数据后,将数据从用户空间缓冲区拷贝回内核空间的套接字缓冲区。第四次拷贝:最后将数据从套接字缓冲区拷贝到网卡设备,通过网络发送出去。
2025-02-25 09:54:27
1188
原创 [杂学笔记]工厂模式、多态、内存空间区域划分、cp指令破坏软连接问题、UDP如何实现可靠传输、滑动窗口的原理、进程与线程、线程之间的通信
那么在创建对象的时候,如果想改变对象的创建方式,直接在工厂类代码中改变即可,不需要再依次的修改创建对象的new代码了。如果说丢包了,会收到连续相同序号的ACK应答报文,会将待发送区域的指针移动到ACK报文的确认序号位置,重新发送数据。进程是CPU执行调度的基本单位,每个进程都拥有自己独立的地址空间,不同进程之间是无法直接进行互相访问数据资源的。cp默认复制一个软连接的时候,会对软连接进行解引用,来访问到软连接指向的文件,从而拷贝文件的内容,拷贝后的内容是一个普通文件,而不是拷贝一个软连接。
2025-02-24 10:26:08
1125
原创 [杂学笔记]TCP的三次握手与四次挥手、SYN洪水、TCP可靠性传输的体现、如何解决死锁问题、数组和队列的区别与优势、进程间通信的方式、为什么视频音频适合用UDP协议
在TCP三次握手的第二次握手阶段后,处于半连接状态,就是客户端已经建立连接了,但是服务器还没有建立连接,他需要接收到第三次握手的ACK响应报文之后才会建立连接,那么在此之前就需要保存这些半连接,所以就有一个半连接队列。客户端会先发送SYN请求与服务端建立连接,服务端收到之后,会发送SYN+ACK响应报文,告诉客户端我可以和你建立连接,之后客户端就单方面建立了连接,之后发送ACK响应告诉服务端我收到了你的响应,当服务端接收到客户端发来的ACK响应报文之后,才会真正的建立连接。
2025-02-21 19:29:11
974
原创 [杂学笔记]STL容器简单介绍、高并发原理、数据库索引
vector容器vector容器底层管理了一个动态开辟的空间,有三个指针start、finish以及end_of_storage费别指向开头,存储数据的结尾以及开辟的动态内存空间的结尾处。该容器可以自动的管理内存空间,当内存不足的时候,会自动的申请更大的空间,然后将数据拷贝到新的空间,并释放原有的内存。该容器对于尾部的插入和删除的操作时间复杂度为O(1),而对于中间元素的插入和删除操作需要进行数据的移动,所以时间复杂度为O(N)。
2025-02-20 14:34:23
673
原创 [杂学笔记]static作用、栈区与堆区作用与区别、重写重载重定义、gcc/g++常用选项、C语言与C++区别、智能指针、左值引用与右值引用
在同一作用域当中允许存在同名的函数,但是函数的参数个数、类型以及类型顺序必须有一个不同才可以,否则无法分辨调用的是哪一个函数。对于返回值不同也不可以作为函数重载的标准。也叫隐藏,当子类中定义了一个与父类同名的非虚函数的时候,父类的同名函数就会被隐藏,调用的时候会先调用子类的函数,并非是覆盖了,因为可以显示的调用父类的同名函数。只要函数名相同就可以构成重定义。也叫覆盖,当派生类定义了一个虚函数的时候,子类也定义了一个函数名、参数列表以及返回类型都一样的函数的时候,就实现了重写。重写的函数会覆盖底层的函数地址。
2025-02-10 11:31:40
977
原创 [MySQL]事务的隔离级别原理与底层实现
事务的隔离级别分为读未提交、读提交、可重复读、串行化,不同的隔离界别可以让蛇舞收到不同程度的干扰,可以用于不同的业务场景。对于隔离级别的实现基本上都是通过锁实现了,因为多客户端访问也相当于是多线程的并发访问,所以说还是要用锁。对于不同的隔离级别,锁的使用是不同的,常见的有表锁、行锁、读锁、写锁等等。
2025-01-28 12:52:36
1578
1
原创 [MySQL]事务的理论、属性与常见操作
事务的本质就是一组DML语句构成的。这些语句在业务逻辑上存在一定的相关性。例如上述的转账操作,有修改A的数据库表,修改B的数据库表等操作,这些操作存在一定的相关性共同构成了一个业务逻辑,这些SQL语句组合起来称为一个事务。所以对于事务,不应该站在MySQL角度,应该站在使用者的角度去看待,使用者想要完成一个业务操作,对应需要使用的一条或者多条SQL语句就是构成了一个事务。对于事务的执行操作,如果执行要么就是全部成功,要么就全部失败,事务中的多条DML语句是一个整体。
2025-01-27 23:39:29
1493
原创 [MySQL]数据库的效率问题与索引的底层原理
数据库效率问题至关重要。在软硬件方面,要提高与磁盘交互效率,需考虑硬件层面如何读取 MySQL 文件,明晰 MySQL 与操作系统的关系,进而探寻提升交互效率之法。索引对于提高查找数据效率意义重大。单个 Page 有其特定结构,包括页目录等,多页 Page 也需深入理解。索引理论涵盖默认索引、聚簇与非聚簇索引。索引相关操作多样,如主键、唯一、普通索引的创建,还有查看与删除。索引创建有原则可循。此外,全文索引的创建与使用也不容忽视,各方面协同才能有效提升数据库效率。
2025-01-25 20:15:25
1400
原创 [MySQL]数据库表内容的增删查改操作大全
这些操作涵盖了 MySQL 中对表数据的常见处理。增加表数据时,可全列插入、指定列插入,还能多行插入,更新与替换插入则提供了不同的数据更新方式。查看表数据功能多样,能全列或指定列查询,使用查询表达式字段,为结果起别名,去重处理,通过 WHERE 条件筛选,对结果排序,分页显示,甚至能插入查询结果,group by 子句可用于分组统计。修改表数据能更新已有记录。删除与截断表数据可按需清除数据,截断操作更为高效快速,这些操作共同助力数据的有效管理。
2025-01-24 11:23:07
1540
原创 [MySQL]数据类型以及表的属性与操作大全
该内容围绕 MySQL 数据库操作展开,涵盖表操作、数据类型和表的约束三大部分。表操作包含表的增删查、修改及使用案例,能满足对表基本的创建、删除、查看和修改需求。数据类型介绍了数值、字符串、日期时间、enum 和 set 类型,详细说明了整数、bit、float、decimal 等不同类型特点,以及 char 和 varchar 的差异。表的约束涉及空属性、默认值等多个方面,讲解了主键、自增长、唯一键和外键的设置与删除等内容,为构建规范、高效的数据库表结构提供了全面指导。
2025-01-23 10:20:21
1095
原创 [MySQL]MySQL数据库的介绍和库相关操作
数据库,是按照一定规则组织、存储和管理数据的仓库。使用它,能高效存储海量数据,实现数据共享与一致性维护,降低数据冗余。其操作运行逻辑是,通过客户端向数据库服务器发送请求,服务器解析请求、执行相应操作,并返回结果。MySQL 架构包含连接层、服务层、存储引擎层和系统文件层。SQL 语句分为数据定义语言、数据操作语言、数据查询语言、和数据控制语言。数据库操作方面,连接后可进行创建、查看、删除、修改数据库等操作。还能查看字符集与校验集,不同校验规则影响数据比较与排序。数据库备份与恢复保障数据安全
2025-01-22 13:46:07
1264
原创 [Qt]系统相关-网络编程-TCP、UDP、HTTP协议
前言之后,首先是 UDP 网络编程,涉及 Qt 项目文件及相关 UDP 类,如 QUdpSocket 和 QNetworkDatagram,还会给出 UDP 回显服务器案例,包含服务器和客户端的细节设计。接着是 TCP 网络编程,有 TCP 类 QTcpServer 和 QTcpSocket,以及 TCP 回显服务器案例的服务器和客户端设计。最后是 HTTP 客户端部分,包括 QNetworkAccessManager、QNetworkRequest 和 QNetworkReply 等类。
2025-01-22 09:10:40
1259
原创 [Qt]系统相关-多线程、线程安全问题以及线程的同步机制
Qt多线程编程是开发中的重要部分。首先介绍多线程概念及操作,包括线程创建、QThread常用API和使用案例,阐述其使用场景。接着是线程安全问题,互斥锁可保证资源独占访问,会介绍并给出使用案例;读写锁允许多读或一写独占。而线程同步涉及条件变量,用于线程间通信和协作,信号量也可控制资源访问。这些工具帮助开发者在多线程环境下,有效管理资源,避免数据竞争,确保程序在并发情况下的正确性、稳定性和高效性。
2025-01-21 10:59:24
1286
原创 [Qt]系统相关-文件操作-QFile、QFileInfo类以及相关操作函数
Qt文件系统是Qt开发中重要的一部分,涵盖了多个方面。Qt文件类提供了操作文件的基础。文件操作包含打开、读写、关闭操作,并且通过相应接口可完成。接口使用案例可帮助开发者更好地理解和使用。获取文件相关属性也很方便。文件可分为文本文件和二进制文件,它们有诸多不同。文本文件存储字符,以字符编码存储数据,可读可编辑;二进制文件存储原始二进制数据,需要专门软件解释,存储效率高,适用于不同的数据存储场景。
2025-01-20 20:57:12
1105
原创 [Qt]事件-鼠标事件、键盘事件、定时器事件、窗口改变事件、事件分发器与事件过滤器
Qt 与操作系统紧密相关,其事件机制是核心部分。Qt 事件是系统和用户操作的通知,表现为各种形式,涵盖常见的鼠标、键盘、定时器、窗口相关事件等。如鼠标进入离开、单击、双击、移动、滚轮滚动,键盘的单键和组合键按下,定时器事件可用于倒计时程序。窗口移动、大小改变事件也有相应处理。事件处理方式多样,可重写事件处理函数,控件添加到对象树基于底层原理。事件分发器和事件过滤器可灵活处理事件,它们协同工作,实现用户界面与系统的交互,使 Qt 应用程序功能强大且交互性强。
2025-01-18 10:54:08
1390
原创 [Qt]窗口-QDialog、QMessageBox、QColorDialog、QFileDialog、QFontFialog、QInputDialog对话框
在Qt开发中,对话框是与用户交互的重要方式。QDialog是所有对话框的基类,使用时需关注对象释放问题,自定义QDialog可设置丰富的界面内容,其model属性决定对话框模态。Qt内置多种实用对话框:QMessageBox能设置图标、内置或自定义按钮,可快速构建消息框;QColorDialog用于选择颜色;QFileDialog方便文件操作;QFontDialog助于字体选择;QInputDialog便于获取用户输入。这些内置对话框极大提升了开发效率,满足不同场景下与用户的交互需求 。
2025-01-17 16:21:50
1349
原创 [Qt]窗口-QMainWindow类-QMenuBar、QToolBar、QStatusBar、QDockWidget控件
本文聚焦于Qt框架中QMainWindow相关知识。开篇介绍QMainWindow类,随后详述其重要组成部分。菜单栏-QMenuBar控件,涵盖创建、添加菜单及选项、信号运用、快捷键设置等多方面操作与使用案例。接着阐述工具栏-QToolBar控件的使用方式,包括停靠、浮动、移动属性设定及案例。对状态栏-QStatusBar控件,说明了创建、信息添加、嵌套控件方法及示例。最后讲解浮动窗口-QDockWidget控件的使用,涉及停靠位置及添加多个控件的案例,全方位展示了QMainWindow的功能与应用。
2025-01-16 23:39:01
1168
原创 [Qt]常用控件介绍-布局管理器-QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout、QSpace控件
该内容涵盖多个布局相关主题。首先介绍布局管理器,随后详述垂直布局-VBoxLayout控件,包括其核心属性、方法、细节,以及使用前后界面变化和双布局设定;接着讲水平布局-HBoxLayout控件的核心属性和嵌套使用;还提及网格布局-GridLayout控件,包含核心属性、细节、SizePolicy属性及多个使用案例;之后是表单布局-FormLayout控件的细节和使用案例;最后介绍Space控件的属性与使用案例,为用户提供布局管理的全面信息。
2025-01-16 09:32:34
1134
原创 [Qt]常用控件介绍-容器类控件-QGroupBox、QTabWidget
本内容主要介绍容器类控件。首先对容器类控件进行了整体介绍,帮助了解其基本概念与用途。接着详细阐述了GroupBox控件,着重讲解了它的核心属性,通过这些属性可对GroupBox进行个性化设置,如标题显示样式等。之后聚焦于QTableWidget,不仅介绍了它的核心属性,像列数、行数等可灵活调整表格结构的属性,还介绍了核心信号,如单元格内容改变时发出的信号。同时点明了使用中的细节,并且给出了实际使用案例,帮助使用者更好地掌握该控件的运用。
2025-01-16 06:57:12
1084
原创 [Qt]常用控件介绍-多元素控件-QListWidget、QTableWidget、QQTreeWidget
主要围绕多元素控件展开介绍。首先提及多元素控件,接着详细讲解了 ListWidget 控件,包括其属性、核心方法、核心信号以及相关细节,还给出了编辑日程的 Demo。随后介绍了 TableWidget 控件,涵盖核心方法、QTableWidgetItem 的核心信号和方法、细节,以及编辑学生信息的示例。最后阐述了 TreeWidget 控件,包含核心方法、核心信号、QTreeWidgetItem 核心方法和细节,以及控件的使用案例,为读者呈现了这些控件的全面信息。
2025-01-15 13:16:58
1170
原创 [Qt]常用控件介绍-输入类控件-QSpinBox、DateTimeEdit、Dial、Silder控件
该文章涵盖多种控件的相关内容。首先是Spin Box控件,介绍其属性和核心信号,并给出点餐小程序的示例;其次是DateEdit、TimeEdit和DateTimeEdit,涉及属性、核心信号以及UTC协调世界时,还有计算两个日期差值的Demo;再者是Dial控件,包含属性、核心信号和旋钮控制界面透明度的Demo;最后是Silder控件,阐述其属性和核心信号,还给出了滑动条调整窗口大小且绑定快捷键的Demo,展示了这些控件在不同应用场景下的特性和使用示例。
2025-01-14 17:28:30
1284
原创 [Qt]常用控件介绍-输入类控件-QLineEdit、QTextEdit、QComboBox控件
在Qt开发中,有几种常见且实用的控件。Line Edit控件属性多样,可设输入模式、长度限制等。其核心信号能反馈用户输入变化,在 “XX软件登录” 等场景中,借助正则表达式验证器,能实现密码验证、输入匹配等功能,还能通过按钮控制密码显示与隐藏。Text Edit控件属性助力文本展示与编辑,核心信号便于捕获文本改变等操作。Combo Box控件属性丰富,核心方法和信号让其应用广泛,如 “点餐小程序” 中,可将文件内容加载进下拉框,方便用户选择。
2025-01-14 12:13:15
1493
原创 [Qt]常用控件介绍-显示类控件-QLabel、QLCDNumber、QProgressBar、QCalendarWidget控件
在Qt开发中,各类控件丰富了用户界面的功能和交互性。Label控件十分实用,它有着多种属性,可设置三种不同的文本格式,满足不同场景下的文本展示需求,还能实现图片的自动拉伸以及伙伴设置。LCD Number控件可用于数字显示,通过设置属性,能实现倒计时程序,甚至利用多线程实现更灵活的倒计时效果。ProgressBar控件常用来展示任务进度,借助属性设置,在“定时器 - 进度条随机增长”的Demo中发挥作用。此外,Calendar Widget控件属性丰富,其重要的信号能方便用户对日期的选择与操作 。
2025-01-14 06:31:37
1273
原创 [Qt]常用控件介绍-按钮类控件-QPushButton、QRedioButton、QCheckBox、QToolButton控件
在图形界面开发中,常见的按钮类型各具特色。QPushButton按钮应用广泛,可用于执行各种操作,比如在“键盘方向键控制人物移动”的Demo中发挥关键作用。Radio Button按钮有独特的属性,clicked、pressed、released、toggled等信号存在区别,且支持单选按钮的分组,这在“点餐小程序”中能让用户方便地选择菜品。CheckBox按钮属性实用,在“获取今天的行程计划”的Demo里,方便用户勾选行程事项。
2025-01-13 16:04:18
1293
原创 [Qt]控件的核心属性
该文档主要介绍了一系列属性及其相关示例。包括enable属性,可通过按钮改变另一按钮的可用状态;geometry属性,用于实现控件移动,还应用于请假程序,且Window frame会对其产生影响;WindowTitle、WindowIcon、WindowOpacity属性,其中Opacity属性可通过按钮控制控件透明度;此外,还有cursor、font、toolTip、focusPolicy、styleSheet属性,在介绍styleSheet属性时提及了计算机中的颜色,并给出了日间与夜间模式切换的示例 。
2025-01-13 09:15:17
1077
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人