1.三个基本窗口类
1.1QWidget
所有窗口的基类
可以内嵌到其他窗口的内部,无边框
也可以作为独立窗口显示,有边框
1.2QDialog
继承于QWidget
对话框窗口类
不可以内嵌到其他窗口
有模态和非模态两种显示方式
1.3QMainWind
继承于QWidget
主窗口类
不可以内嵌
可以包含菜单栏,工具状态栏
2.qt中的坐标体系
3.qt内存回收机制
对象树
OBject,当一个对象创建时指定了其父对象的时候,该对象会被加载到其父对象的child树中,当其父对象析构时候,其子对象也会析构。qt保证所有对象只被析构一次
QWidget继承了Object,自然也就有这种内存回收机制
4.信号槽的概念
说白了就是信号与回调函数,信号就是触发的事件,槽就是对应事件的处理函数
信号与槽本身就是两个函数,是独立的,需要进行关联
通过connect函数
/*
sender是发送的对象指针,
signal是对象所属类的信号函数地址,
recevier是信号的接收对象的指针
slot是接收对象所属类的槽函数地址
*/
connect(*sender, &Sender::signal, *receiver, &Receiver::slot);
这种方法一般是qt5的,如果存在函数重载就会比较麻烦,因为信号和槽函数都是用的函数指针
Qt4方法
connect(*sender, SIGNAL(signal(arg1, arg2, ...)), *receiver, SLOT(slot(arg1, arg2, ...)));
这种方法可以给函数传递对应的参数,比较方便
5.自定义的信号和槽函数
这些函数一般都是类的成员函数,匿名函数,或者静态函数,全局函数
因为是自定义的,qt提供的类并不知道什么时候调用它,所以要先将标准信号函数与自定义的信号函数关联起来,当标准的信号函数触发就会调用自定义的信号函数,自定义的信号函数又和自定义的槽函数关联着,就会触发自定义的槽函数。