添加按钮
图上那里错了,是从上往下构造,从下往上析构
设置父类后,按钮就依存于父窗口,会在父窗口里显示(否则按钮不会在父窗口里),不用调按钮的show方法就可以直接显示
内存自动回收
可以直接new对象,而不管delete的条件:
1、这个类得是从QObject派生下来的;
2、这个对象得给它指定父对象(例如父窗口对象);
满足这两个条件,就可以直接new对象,而不用管delete。在你指定的父对象析构时,new的对象也会被析构。
这个机制是由对象树实现的。
对象树
从上往下构造,从下往上析构
验证自动释放机制(创建一个新的按钮类)
添加一个新的按钮类:
修改继承的父类
头文件
参数的父指针不需要改是因为:QWidget是所有窗口类的父类,所以父指针的类型不用改
源文件
然后添加析构函数,在里面打印提示信息
设置窗口标题,大小和图标
setText() //按钮上的文字
resize() //设置按钮、窗口的大小
setFixedSize() //设置窗口固定大小
setWindowIcon() //设置窗口的图标
setWindowTitle() //设置窗口的标题
这几个函数是QWidget里的,所有从QWidget派生下来的窗口类都可以用这些函数
所以上面的自定义的按钮类是继承自QPushButton <= QWidget的,所以也可以用这些函数设置大小
当你想到某个功能(例如:要给QPushButton类按钮添加文字),这个功能一定有相应的函数。但QPushButton类中似乎没有这样的成员函数,这时应该到QPushButton的父类:QWidget类中去找。
例如那个resize函数,就不是QPushButton的成员函数,而是QWidget的!