文章目录
- 一、通过图形化的方式,在界面上创建一个控件,显示hello world
- 1.打开UI设计界⾯
- 2.拖拽控件⾄ ui 界⾯窗⼝并修改内容
- 3.构建并运行
- 二、通过代码的方式,通过编写代码,在界面上创建控件,显示hello world
- 在Widget构造函数里编写
- 运行结果
- 问题
一、通过图形化的方式,在界面上创建一个控件,显示hello world
1.打开UI设计界⾯
双击 widget.ui ⽂件:
UI设计界面:
2.拖拽控件⾄ ui 界⾯窗⼝并修改内容
3.构建并运行
按下运行键:
二、通过代码的方式,通过编写代码,在界面上创建控件,显示hello world
一般通过代码来构造界面的时候,通常会把构造界面的代码放到Widget/mainWindow的构造函数中
在Widget构造函数里编写
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//代码创建组件://创建对象的两种方式:堆上创建,栈上创建,推荐堆上创建//栈上创建对象//QLabel label(this);//堆上创建对象QLabel* label = new QLabel(this);//此处的this是给当前这个label对象,指定一个“父对象”label->setText("hello world");//设置内容
}
运行结果
问题
-
上面的代码,在堆上创建对象,没有释放会不会造成内存泄漏
不会,因为 QLabel* label = new QLabel(this); 这里的this,将组件放入对象树中,会在合适的时候释放。 -
为什么要用对象树
使用对象树,把界面要显示的这些控件对象都组织其起来,最主要的目的,就是为了能够在合适的时机把这些对象统一进行释放