【无标题】添加按钮

添加按钮

【无标题】添加按钮_第1张图片

图上那里错了,是从上往下构造,从下往上析构 

设置父类后,按钮就依存于父窗口,会在父窗口里显示(否则按钮不会在父窗口里),不用调按钮的show方法就可以直接显示

【无标题】添加按钮_第2张图片

内存自动回收

可以直接new对象,而不管delete的条件:

1、这个类得是从QObject派生下来的;

2、这个对象得给它指定父对象(例如父窗口对象);

满足这两个条件,就可以直接new对象,而不用管delete。在你指定的父对象析构时,new的对象也会被析构。

这个机制是由对象树实现的。

对象树

从上往下构造,从下往上析构

【无标题】添加按钮_第3张图片

 

【无标题】添加按钮_第4张图片

 验证自动释放机制(创建一个新的按钮类)

添加一个新的按钮类:

 

【无标题】添加按钮_第5张图片

【无标题】添加按钮_第6张图片

 修改继承的父类

头文件

【无标题】添加按钮_第7张图片

参数的父指针不需要改是因为:QWidget是所有窗口类的父类,所以父指针的类型不用改

源文件

【无标题】添加按钮_第8张图片

 然后添加析构函数,在里面打印提示信息

【无标题】添加按钮_第9张图片

 

 

设置窗口标题,大小和图标

setText()   //按钮上的文字

resize()     //设置按钮、窗口的大小

setFixedSize()    //设置窗口固定大小

setWindowIcon()      //设置窗口的图标

setWindowTitle()      //设置窗口的标题

这几个函数是QWidget里的,所有从QWidget派生下来的窗口类都可以用这些函数

所以上面的自定义的按钮类是继承自QPushButton <= QWidget的,所以也可以用这些函数设置大小

当你想到某个功能(例如:要给QPushButton类按钮添加文字),这个功能一定有相应的函数。但QPushButton类中似乎没有这样的成员函数,这时应该到QPushButton的父类:QWidget类中去找。

例如那个resize函数,就不是QPushButton的成员函数,而是QWidget的!

你可能感兴趣的:(开发语言)