Qt对象有自己的内存管理策略,当父对象被析构时,会将它的所有子对象同时析构。因此,只要一个Qt对象的父对象设置适当,它就会在父对象析构时自动析构,不需要做多余的delete操作。
注意: 由于窗口内的部件会在窗口析构时自动用delete操作符析构,因此这些部件不能定义为成员变量,只能由new操作符动态生成。
各种Qt对象类的构造函数一般都可以接受一个Qt对象指针作为参数,用于设置父对象,这样在Qt对象生成时就确定了它的父对象。另外,有些函数可以改变Qt对象的父对象,如布局类addWidget函数,它会使加入布局的窗口部件成为布局所在窗口的子对象。窗口内的布局和部件是分开管理的,只有最顶级的布局的父对象是窗口,其他布局的父对象都是包含它的布局,而窗口部件不管在哪个布局内,其父对象都是窗口本身。