1.指定父对象有两种方式
方式一:setParent()
MyButton *Mybtn=new MyButton();
Mybtn->setText("我的Button");
Mybtn->move(200,200);
Mybtn->setParent(this);
、 方式二:通过构造函数传参
QPushButton *btn=new QPushButton("Button",this);
btn->move(100,100);
2.窗口的构造和析构执行顺序
先构造主窗口的构造,在找主窗口下面的子窗口。析构正好相反。
3.项目结构
.pro文件,项目包含,用到什么,类似于清单。
.h文件,也叫头文件,一般在.h文件中声明变量,函数的定义。给.cpp文件使用。在.h文件中定义两个Button按钮
private:
QPushButton b1;
private:
QPushButton *b2;
在.cpp文件中就可以使用这两个Button
b1.setParent(this);
b1.setText("设置父物体");
b2=new QPushButton(this);
b2->setText("构造函数设置父物体");
b2->move(100,100);
.cpp文件,函数实现的主要地方
资源文件,详见这篇博客:https://blog.csdn.net/yansmile1/article/details/52910083
4.信号和槽
//参数1 信号的发送者 参数2 发送的信号(函数的地址) 参数3 信号的接收者 参数4 处理的槽函数
// connect(Mybtn,&MyButton::clicked,this,&Widget::close);
1.信号必须有signals关键字来声明,
2.信号没有返回值,但可以有参数
3.信号就是函数的声明,只需声明无需定义
4.使用emit mySingle();
5.信号可以重载。
5.QT析构(自动释放内存)
1 指定父对象后。
2 直接或间接继承Qobject
3 子对象如果是动态分配空间的New,不需要手动释放delete,系统会自动释放。