1.对象树
1.1 当创建的对象在堆区时,如果指定的父亲是QObject派生下来的类或者Oobject子类派生下来的类,可以不用管理释放的操作,对象会被放入对象树中,只要父类析构,子类亦会析构。一定程度上简化了内存回收机制
2.信号与槽函数
连接函数:connect(信号的发送者,发送的具体信号,信号的接收者,信号的处理)
发送信号:emit
信号槽的优点:松散耦合,信号发送端和接受端本身就是没有关联的,通过connect连接
3.总结
(1)信号是可以连接信号
(2)一个信号可以连接多个槽函数
(3)多个信号可以连接同一个槽函数
(4)信号和槽函数的函数必须一一对应
(5)信号和槽函数的个数,信号的参数个数可以多于槽函数
功能点击close窗口关闭:
#include "mywidget.h"
#include <QPushButton>
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//创建第一个按钮
QPushButton * bt = new QPushButton;
//bt->show(); //show以顶层方式弹出窗口空间
bt->setParent(this); //让bt对象,依赖在myWidget窗口中
//显示文本
bt->setText("close");
//创建第二个按钮,按照控件的大小创建窗口
//QPushButton *bt_two = new QPushButton("open",this);
//移动第二个按钮
//bt_two->move(100,100);
//重置窗口大小
resize(600,400);
//设置固定窗口大学校
setFixedSize(200,200);
//设置窗口标题
setWindowTitle("窗口");
//点击我的按钮 关闭窗口
connect(bt,&QPushButton::clicked,this,&myWidget::close);
}