一、创建按钮及对应的内容
1、添加的代码一般都是写在源文件中对应的构造函数中
【注】有的时候new的控件不显示,要注意是否在构造函数中new的,在其它函数如自定义的函数中创建的控件需要调用show()才能显示。
/*
* 在应用程序上创建一个按钮
* 一般代码会写在构造函数中
*/
#include "mywidget01.h"
#include<QPushButton> //要添加包含对应控件的头文件
myWidget01::myWidget01(QWidget *parent)
: QWidget(parent)
{
/* 第一种方式创建按钮 */
//创建一个按钮,即new一个对象
QPushButton *btn=new QPushButton();
// 显示该按钮,不应该使用show函数,因为show函数是顶层方式弹出控件
// 在此希望按钮是依附在窗口上,所以需要将该窗口设置为按钮的父对象
btn->setParent(this);
// 为该按钮添加文本内容
btn->setText("The First New Button");
/* 第二种方式创建按钮,更加简洁方便,但该方法窗口大小会
* 随着控件的大小变化,所以需要设置窗口尺寸 */
QPushButton *btn2=new QPushButton("The Second New Button",this);
btn2->move(100,60); //设置按你的坐标位置
//设置按钮的大小
btn2->resize(160,50);
//设置的窗口大小,用户可以通过拖动来进行动态调整
resize(600,500);
//设置窗口大小固定值,不可以调整
setFixedSize(600,500);
//设置窗口标题
setWindowTitle("应用界面");
}
myWidget01::~myWidget01()
{
}
2、运行结果如下

二、关于new对象的释放问题:对象树
1、对象树
在QT中可以通过对象树来管理new对象的释放。在创建QObject对象的时候,会看到QObject的构造函数接收一个QObject指针作为其参数,这个参数就是parent,也就是父对象的指针。
相当于在创建QObject对象时,提供其父对象,并且QObject对象会被自动添加到父对象的children()列表中。当父对象析构的时候,这个列表中所有对象都会被析构。(注:在此父对象不是继承意义上的父类)。

2、自定义按钮类
1)、首先添加新文件

2)、选择C++ class

3)、自定义类名,并选择基类为QWidget

4)、修改对应类的头文件和源文件

让头文件包含和继承自QPushButton

在源文件中添加调试信息

用自定义的类来创建按钮

运行结果如下:

调试信息如下:

【注:在此都是只有new而没有delete释放,是由于对象树中会自动释放其孩子列表中的对象】
4056

被折叠的 条评论
为什么被折叠?



