- 博客(55)
- 收藏
- 关注
原创 第六章 QT基础:9、Qt中数据库的操作
Qt框架中对数据库操作提供了很好的支持,我们可以通过Qt提供的类非常方便地和本地或者远程数据库进行连接。众所周知,数据库是 C-S(client-server)结构的,我们要连接的数据库属于服务器端,通过Qt编写的应用程序属于客户端。如果想通过Qt访问数据库,首先我们需要在项目中添加数据库模块,模块名为sql。找到项目文件xxx.pro💡 这个sql模块对应的是一个动态库,包含数据库相关类的二进制源码。使用时会被加载到内存中,按需提供服务。:添加/删除/复制/关闭数据库实例QSqlQuery。
2025-04-30 15:54:21
1044
原创 第六章 QT基础:8、Qt中线程池的使用
线程池事先创建好一定数量的线程(工作线程)新任务来了,不创建新线程,而是把任务交给已有的线程来执行任务完成后,线程不销毁,而是回到池中,等待下一个任务大幅减少了线程创建销毁的开销,提高了程序性能//继承QObject和QRunnable(多继承)//必须继承QObject,才能使用信号槽机制Q_OBJECTpublic:// 任务完成后自动销毁~MyWork();// 重写run(),任务逻辑写这里✅ 继承QObjectQRunnable,可以发送信号、响应槽,功能更强!比较项。
2025-04-29 16:04:46
778
原创 第六章 QT基础:7、Qt中多线程的使用
技术点说明QThreadQObject实现真正的工作线程架构将工作对象迁移到线程中信号槽机制主线程与子线程通信(线程安全)UI线程与逻辑分离不阻塞界面,提升用户体验线程安全UI更新使用信号更新界面,避免子线程直接操作控件。
2025-04-29 16:01:46
927
转载 第六章 QT基础-QT内容补充:1、Qt中的信号槽
信号槽是 Qt 框架引以为豪的机制之一,实际体现的是观察者模式(发布-订阅模式)。当某个事件发生后(如按钮被点击),它会发出一个信号(signal),任何接收方对象只要使用connect()将其槽函数绑定上,就可以自动触发槽(slot)函数进行处理。就像广播一样,信号发出后不指定接收者,而是由接收者决定要不要处理这个信号。Qt框架提供的信号槽在某些特定场景下是无法满足我们的项目需求的,因此我们还设计自己需要的的信号和槽,同样还是使用connect()对自定义的信号槽进行连接。
2025-04-26 21:55:30
21
转载 第六章 QT基础-QT内容补充:2、Qt中按钮类型的控件
父节点(Parent Node)ui->wives,它的状态会根据子节点(如等)的选择情况自动变化。子节点(Child Nodes)等复选框,它们的状态变化会触发父节点状态的更新。是连接子节点的状态变化到父节点的机制,确保父节点的状态能反映子节点的选择情况。
2025-04-26 21:54:15
27
原创 Linux套接字+Sqlite实例:客户端-服务器应用程序教程
客户端和服务器端。客户端通过与服务器通信,执行不同的操作,如注册、登录、查询单词和查询历史记录。服务器端负责接收和处理这些请求,操作数据库(SQLite)来管理用户信息和查询记录。通过这篇教程,我们介绍了如何实现一个基于TCP套接字的客户端-服务器应用,并结合SQLite数据库来存储用户信息和查询历史。使用TCP套接字进行客户端和服务器之间的通信。使用SQLite数据库管理用户注册、登录、单词查询和历史记录。客户端和服务器通过结构化的消息(MSG结构体)进行数据交换。
2025-04-25 16:27:19
1281
原创 第六章 QT基础:5、QT的UDP网络编程
UDP 是一种无连接的协议,在网络上发送数据时不需要与接收方建立连接,数据直接发送到目标地址的指定端口。由于其无连接性,UDP 具有较低的延迟和较高的传输效率,但也无法保证数据的可靠性。Qt 提供了。
2025-04-24 15:22:17
738
原创 第六章 QT基础:4、QT的TCP网络编程
TCP(Transmission Control Protocol)是一种面向连接的可靠通信协议,主要特性如下:NOTE]三次握手建立连接可靠传输:顺序、无丢包面向流:数据无结构边界适用场景:聊天、网页、文件传输Qt 中的 TCP 通信机制与基本原理QTcpServer 如何监听 + 接收连接 + 获取 QTcpSocketQTcpSocket 如何连接服务器 + 发送接收数据C++ 构造函数、QObject 父子机制、信号槽绑定细节。
2025-04-23 20:51:03
692
原创 第六章 QT基础:3、QT的打包和部署
打包和部署是将开发完成的程序分发给用户并使其能够在目标环境中运行的两个重要步骤。打包:指的是将开发完成的程序及其依赖的所有资源(如图标、配置文件、动态链接库、字体等)打包成一个可以分发的文件格式(例如.exe.dmg或.apk打包过程中,程序源代码会被编译成可执行文件,通常会进行优化,去除不必要的调试信息和代码,以提高程序的执行效率。在打包过程中,通常还会设置一些程序的属性,例如图标、版本信息、许可证等。打包后的文件可以是单一的可执行文件,也可以是包含多个文件和文件夹的安装包。部署。
2025-04-23 20:49:28
648
原创 第六章 QT基础:2、编程基础及串口助手案例
在QT中,GPIO(通用输入输出)通常通过操作底层硬件接口来进行控制,例如通过/dev/下的文件进行输入输出。在QT中并没有直接的GPIO模块,因此通常需要借助底层操作系统的接口进行GPIO编程。QT的串口编程使用QtSerialPort模块,它提供了对串口设备的支持,使得应用程序能够方便地与硬件设备通过串口进行通信。QT支持多种网络协议的编程,主要使用 QTcpSocket 和 QTcpServer 类来进行TCP协议的编程。:包括串口号选择、波特率选择、数据位选择、校验位选择、停止位选择等。
2025-04-22 19:24:28
581
原创 第六章 QT基础:1、入门操作:文件操作与信号槽机制笔记
使用connect()函数显式连接信号与槽。sender:发出信号的对象(如按钮):信号名称receiver:接收信号的对象slotName():响应函数名称。
2025-04-22 16:46:51
829
原创 第五章 SQLite数据库:5、SQLite 进阶用法: SQLite 安全问题(如注入防护)、性能分析(EXPLAIN)、数据库维护(VACUUM)、时间处理到常用函数等及SQLite 综合使用案例
SQL 注入是指攻击者通过构造恶意输入,将恶意 SQL 语句插入查询中,从而对数据库执行非预期操作。
2025-04-20 15:24:51
585
原创 第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
SQLite 的命令允许在不完全重建表的情况下修改现有的表结构。通过 ALTER TABLE,您可以执行如重命名表名、添加新列等操作,但无法执行复杂的修改,如删除列或修改列的数据类型。
2025-04-20 14:56:39
1346
原创 第五章 SQLite数据库:5、SQLite 进阶用法:JOIN、UNION、TRIGGER、INDEX、ALIAS、INDEXED BY 等模块
采用“图书借阅系统”作为示例模型,涵盖 JOIN、UNION、TRIGGER、INDEX、ALIAS、INDEXED BY 等模块,旨在帮助读者全面理解 SQL 编程逻辑与底层原理,提升数据建模与查询优化能力。
2025-04-18 11:19:37
624
原创 第五章 SQLite数据库:4、SQLite 进阶用法:常见的约束、PRAGMA 配置、数据操作
约束用于强制字段值必须满足条件,从而保障数据的完整性和一致性。初始化数据库时统一配置常用PRAGMA表结构应明确使用NOT NULLCHECKDEFAULT等约束可封装表定义 + PRAGMA 为一体的创建脚本。
2025-04-18 11:01:06
390
原创 第五章 SQLite数据库:3、SQLite 常用语法及使用案例
SQLite 提供了 SQL 操作和表达式,支持对数据进行插入、选择、更新、删除和多种数学、逻辑、位运算等操作
2025-04-17 18:50:06
1253
原创 第五章 SQLite数据库:2、SQLite 数据类型及数据库、附加库及表等基本操作
SQLiSQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。
2025-04-15 22:04:15
844
原创 第五章 SQLite数据库:1、SQLite 基础语法及使用案例
功能模块使用语法数据结构定义CHECK数据操作INSERTSELECTUPDATEDELETE查询优化INDEXGROUP BYORDER BY查询进阶JOINVIEWSUBQUERYEXISTS数据一致性COMMITROLLBACK。
2025-04-15 10:55:47
1042
原创 第四章 Linux套接字通信:11.UDP特性之广播
广播的UDP的特性之一,通过广播可以向子网中多台计算机发送消息,并且子网中所有的计算机都可以接收到发送方发送的消息,每个广播消息都包含一个特殊的IP地址,这个IP中子网内主机标志部分的二进制全部为1 (即点分十进制IP的最后一部分是255)。点分十进制的IP地址每一部分是1字节,最大值为255,比如:192.168.1.100广播分为两端,即数据发送端和数据接收端,通过广播的方式发送数据,发送端和接收端的关系是 1:NUDP的广播和日常生活中的广播是一样的,都是一种快速传播消息的方式,因此广播的开销很小,发
2025-04-14 13:47:19
565
原创 第四章 Linux套接字通信:10.基于UDP的套接字通信
udp是一个面向无连接的,不安全的,报式传输层协议,udp的通信过程默认也是阻塞的。
2025-04-14 13:43:16
1127
原创 第四章 Linux套接字通信:9.IO多路转接(复用)之epoll
epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。O多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。
2025-04-13 14:46:22
1052
原创 第四章 Linux套接字通信:8.IO多路转接(复用)之poll
poll的机制与select类似,与select在本质上没有多大差别,使用方法也类似
2025-04-13 14:45:01
724
原创 第四章 Linux套接字通信:7. IO多路转接(复用)
IO多路转接也称为IO多路复用,它是一种网络通信的手段(机制),通过这种方式可以同时监测多个文件描述符并且这个过程是阻塞的,一旦检测到有文件描述符就绪( 可以读数据或者可以写数据)程序的阻塞就会被解除,之后就可以基于这些(一个或多个)就绪的文件描述符进行通信了
2025-04-13 14:42:44
577
原创 第四章 Linux套接字通信:6.TCP 套接字通信封装(C/C++)
在掌握了 TCP 套接字通信流程的基础上,对相关通信操作进行了函数级与类级封装
2025-04-11 11:40:21
475
原创 第四章 Linux套接字通信:4.服务器并发
在TCP通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在介绍TCP通信流程的时候,提供的服务器代码却不能完成这样的需求
2025-04-10 13:28:43
717
原创 第四章 Linux套接字通信:基础信息补充
Socket(套接字)是应用程序通过网络进行通信的端点。不同类型的 Socket,决定了它的传输协议、通信方式、使用场景等。
2025-04-10 10:06:53
510
原创 第四章 Linux套接字通信:3. TCP状态转换、端口复用
在TCP进行三次握手,或者四次挥手的过程中,通信的服务器和客户端内部会发送状态上的变化
2025-04-10 10:04:50
1015
原创 第四章 Linux套接字通信:1.套接字通信基础
Socket套接字由远景研究规划局(Advanced Research Projects Agency, ARPA)资助加里福尼亚大学伯克利分校的一个研究组研发。
2025-04-08 19:48:34
586
原创 第三章 Linux进程线程:线程进程总结
定义:父进程先于子进程退出,子进程成为 孤儿进程,此时 进程(PID=1)会接管它,并回收其资源。孤儿进程的影响:总结 问题 定义 影响 预防与处理 僵尸进程 子进程退出但父进程未 ,导致进程表项未释放 占用 PID 资源,可能导致新进程无法创建 - 或 处理子进程 - 绑定 信号处理函数 - (Linux) 孤儿进程 父进程先于子进程退出,子进程由 进程接管 影响较小,但可能
2025-04-08 16:38:36
656
原创 第三章 Linux进程线程:9.线程同步:互斥锁、信号量、条件变量
进程间与线程间通信- 通常用于进程间通信的方式,也可以用于线程间通信。- 信号量不仅适用于进程间同步,还可以用于线程间同步。无名信号量与有名信号量有名信号量:通过唯一的信号量名称标识,在操作系统中有唯一标识,适用于进程间通信。无名信号量:用于进程间通信时,信号量必须存储在共享的内存区域内,进程通过内存地址直接访问这些信号量。二进制信号量与计数信号量二进制信号量:用于互斥,通常充当互斥锁,确保资源的互斥访问。计数信号量:用于控制进程或线程的执行顺序,值的范围可以大于1,用于协调多个进程的顺序。
2025-04-08 15:38:50
839
原创 第三章 Linux进程线程:7.守护进程
守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。
2025-04-08 14:16:06
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人