qt的核心机制
信号与槽
条件
1、 继承QObject类
2、 产生信号
3、 槽函数
4、 connect关联
作用:实现对象与对象之间的通信。
三大护法
QApplication:控制整个程序的执行流程
Widget: 是界面组件中的父类
QLayout: 布局管理:设置组件的摆放位置(绝对布局、相对布局)
qt里面客户端的搭建流程
创建socket,QTcpSocket
连接、connectToHost,连接成功:产生connected()信号
通信、write发送信号,接收到readyRead()d的信号可以执行接收数据的槽函数
关闭close
信号和事件的关系
信号是在事件处理函数中触发的,信号的底层:就是事件
QEvent是所有事件类的父类,
单例
概念:单个的实例,也就是一个类只能创建一个对象
分类:
懒汉模式:什么时候用什么时候处理
饿汉模式:一开始就处理好
特点:
1、 构造函数私有化
2、 创建一个静态的成员函数,获取对象
3、 创建一个静态的数据成员去保存该对象(静态变量初始化)
信号和槽想要带参数需要怎么设计
信号的参数个数大于等于槽的参数个数,匹配顺序从左到右,类型要匹配
使用的时候只需要写数据类型即可
信号、槽函数能不能重载
可以,举例:下拉框(信号),定时器的启动(槽函数)
qt搭建服务器的流程
1、创建QTcpServer对象(套接字)
2、给这个对象绑定ip和port并创建监听
3、等待连接(有客户端连接会产生,newConnection信号)
4、使用QTcpSocket对象的指针进行通信(客户端发送信息,会产生readyRead()信号)
5、断开连接
qt如何进入到事件循环
QApplication类中exec函数会让程序进入一个事件循环
qt中继承QThread类创建线程方法
1. 继承QThread类,自定义一个线程类
2. 重写QTread里面的run函数
3. 创建线程类的对象
4. 启动线程 strat会自动的调用run函数
5. 线程退出 quit
6. 线程销毁 wait