QT项目复习
2020-12-15 本文已影响0人
StevenHD
概念
- 一个PushButton按钮显示在Widget窗口上,就是
父子窗口
一、内存管理
- 一定要在
堆
上建立对象,在栈上对象是显示不出来的,因为离开了作用域,就结束了 - 可以不用手动delete——
- qmake和cmake的用处——
用来组建项目,用它们来生成makefile,然后通过makefile来编译
二、槽
三、服务器代码
- listen()结束后创建
线程池
- 创建完100个线程后,每个线程都去accept()等待
- 线程要设置成
detach()分离态
- 然后
clntfd
开始accept()等待,谁accept()到了(accept()返回),谁就去处理请求
3.1 处理客户端的请求
- 处理客户端的请求,首先从
解析封包
开始 -
readPack()
来读数据包
该函数的功能是读取一个
完整的0203数据包
- 一个字节一个字节的读,判断第一个是不是
CMD_BEGIN
- 如果发现是
CMD_BEGIN
,那么说明这个包是合法的,我们讲读出的字节存入到buf
中
四、客户端代码
- 包头包尾都使用
宏
来指定 - QT中使用
this
则是使用父对象来托管内存
,可以通过托管父对象
来释放内存。 - QT中的
槽函数
是放在SLOT()
中的 - 继承关系——
![]()
QObject
不仅实现了内存管理
机制,也实现了信号与槽机制
4.1 QT中的信号与槽机制
- 方便C++对象之间的通信
![]()
老师
和学生
之间的 互相通信
- 信号与槽之间
多对一
或者一对多
的连接
- 槽函数和信号函数需要有参数的时候,
重载
一次加上参数
即可 - 需要继承自
QObject
,然后加上Q_OBJECT
宏,从而才可以使用信号与槽机制
- 【信号函数】是
只声明不定义
- 【槽函数】可以像
普通函数
一样使用,唯一区别是可以跟信号关联
4.2 QDialog介绍
-
QDialog
也继承自QWidget
-
QWidget
是普通窗口 -
QDialog
是模式窗口
4.3 QString介绍
- 用来处理字符串
4.4 QByteArray介绍
- 用于
字节流
、字节数组
- 没有编码的概念