什么是静态库和动态库
静态库:速度略快
把静态库的内容和项目程序绑定在一起
动态库:内存消耗小,更新程序时较麻烦
可以和项目程序分离,程序通过指定路径来调用动态库
linux系统下
静态库文件:.a
动态库文件:.so
Windows系统下
静态库文件:.lib
动态库文件:.dll
可以把代码文件编译成库文件供多个项目使用
debug和release
debug:生产可调试的程序
release:单纯生成可执行文件
debug比release生成出来的程序更大
在QT中很少修改main.cpp文件
exec函数本质是一个死循环
在死循环过程中,可以接收事件
信号和槽
connect函数有5个参数,第五个参数修改连接方式
第五个参数的作用
默认:根据情况自动判断调用直接连接或多线程连接
直接:同一线程的信号和槽进行连接
多线程:不同线程, 如果多线程在忙,会排队调用槽函数
阻塞多线程:不能在同一个线程中调用,不然会死锁
唯一连接:只会绑定一次信号和槽的连接
可以和其他类型同时使用
返回值是真或假
两个对象之间的通信才可以使用connect函数
信号只有声明没有定义
发射信号使用emit关键字
优点:
简单安全
信号和槽是松耦合的,发送者不需要知道接收者的信息
信号和槽可以使用任意类型的任意数量的参数
setupUi(初始化部件)
Qt的线性容器
QByteArray
QString比QByteArray多了编码的类型
QByteArray可以直接转为QString
QString想要转为QByteArray则需要选择编码
编码就是字符的二进制数据的表示方法
ASCII:单字节编码
无法表示中文
GB GBK
Unicode:国际的双字节编码
UTF-8
时间处理
a.exec();
监控事件
mainwindows
菜单栏
工具栏
状态栏
Qt多线程
继承QThread开启新线程
自定义一个新类继承QThread类
重写run函数
movetoThread开启多线程
自己定义一个新类继承QObject
自己写一个多线程函数,可以自己命名
实例化一个新类对象和qthread对象
调用movetothread,参数为qthread对象
信号和槽连接:qthread的started信号
qthread对象的start方法
退出线程
优雅退出
exit和wait联合使用