Qt ------ 初始化构造函数参数,parent
Posted 流水灯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt ------ 初始化构造函数参数,parent相关的知识,希望对你有一定的参考价值。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); }
1、QMainWindow 是 MainWindow 的父类
2、QWidget *parent 中的 parent 值赋值给 QMainWindow(parent) 中的 parent
3、写这句 QMainWindow(parent) 的原因是 new 一个 MainWindow 对象可以指定父对象,从而使用 Qt 提供的内存自动回收机制
4、QWidget *parent 中为 QWidget 的原因是 QWidget 为窗口类型的类的基类,对于其他父类(比如非QMainWindow,即非窗口类),parent类型是 QObject
5、ui(new Ui::MainWindow)的作用相当于 ui = new Ui::MainWindow,即对对象 ui 进行实例化
另外比较通用,也是很重要的作用是,parent参数指明了组件的父组件,这样,当父组件delete时,Qt可以保证所有子组件——也就是parent指针指向这个组件的所有组件——都会被正确的delete掉。这是Qt能够帮助我们管理一部分内存的原因所在。Qt是通过遍历parent属性来防止了这一部分内存泄漏的。因此,必要情况下还是不要忘记设置这个parent属性。当然,如果你不声明这个属性,当整个程序关闭时,操作系统会回收内存——因此我们所说的内存泄漏一般是指我们自己写的应用程序的内部,而不会影响到整个操作系统——当然,如果你实现太可恶,操作系统也会受不了自动关掉你的程序的。
以上是关于Qt ------ 初始化构造函数参数,parent的主要内容,如果未能解决你的问题,请参考以下文章