一、 控件常用API
1.1创建: QPushButton * btn =new QPushButton;
1.2设置父亲:setParent(this);
1.3设置文本:setText(“文本”);
1.4设置位置:move(宽,高);
1.5重新指定窗口大小:resize
1.6设置窗口标题:setWindowTitle
1.7设置窗口固定大小:setFixedSize
二、对象数
2.1当创建的对象在堆区的时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象放入到对象数中。
2.2一定程度上简化了内存回收机制。
三、窗口坐标系
左上角(0,0),x以右为正向,y以下为正向。
四、信号和槽
4.1 连接方式connect。
4.2参数
参数1:信号的发送者。
参数2:发送的信号(函数的地址)。
参数3:信号的接受者。
参数4:处理的槽函数(函数的地址)。
4.3优点:松散耦合
4.4实现一个点击按钮,关闭窗口的案例:connect(myBtn,&QPushButton::clicked,this,&QWidget::close);
五、自定义信号和槽
5.1自定义信号
写到signals下。返回void。需要声明,不需要实现。可以有参数。
5.2自定义槽函数
写到 public slot 下或者 public 或者全局函数返回void。需要声明,需要实现。可以有参数,可以重载。
5.3触发自定义的信号
emit自定义信号
5.4案例·下课后,老师会触发一个信号,饿了,学生响应信号,请客吃饭。
六、当自定义信号和槽出现重载
6.1 需要利用函数指针,明确指向函数的地址。
void(Teacher::※tsignal)(QString)=&Teacher::hungry;
6.2 QString转成char*:
先.toUtf8()转为QByteArry,再.data()转为char*。
6.3 信号可以连接信号
6.4断开信号 disconnect
七、拓展
7.1信号是可以连接信号的
7.2一个信号可以连接多个槽函数
7.3多个信号可以连接多个槽函数
7.4信号和槽函数的参数必须类型一一对应
7.5信号和槽的参数个数 是不是要一致?信号的个数可以多于槽函数参数的个数
7.6信号槽可以断开连接 disconnect
八、Qt4版本写法
8.1 connect(信号的发送者,发送的信号 SIGNAL(信号) , 信号的接收者,槽函数SLOT(槽函数) )
8.2 优点:参数直观。 缺点:编译器不会检测参数类型。