关于QT构造函数参数parent的解释

比如说我在头文件里定义了一个类
class PaintWidget:public QWidget
{
public:
PaintWidget(QWidget*parent=0)
}
然后在cpp中写
PaintWidget::PaintWidget(QWidget*parent):QWidget(parent)

意思是说,重定义父对象。
如何重定义呢?看parent参数。
当PaintWidget放到某个窗口上的时候,该PaintWidget的父对象可以被重定义为该窗口。
PaintWidget通过parent指针来告诉父类QWidget:“我想要把我的父对象设置为该窗口,请通过你的构造函数来实现这个目的”。
注意:父类与父对象的区别。
          父对象是为了内存管理而出现的,如果一个对象的父对象销毁了,那么这个对象也自动销毁,释放内存

时间: 2024-10-17 07:42:10

关于QT构造函数参数parent的解释的相关文章

Qt带参数的信号,和指针函数和函数指针

一:Qt带参数的信号 main.cpp #include "widget.h" #include "slot.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); //查找QApplication()的相关资料 Widget w; w.show(); return a.exec(); } widget.cpp #include &

C++ 为什么拷贝构造函数参数必须为引用?赋值构造函数参数也必须为引用吗?

之前写拷贝构造函数的时候,以为参数为引用,不为值传递,仅仅是为了减少一次内存拷贝.然而今天看到一篇文章发现自己对拷贝构造的参数理解有误. 参数为引用,不为值传递是为了防止拷贝构造函数的无限递归,最终导致栈溢出. 下面来看一个例子: class test { public: test() { cout << "constructor with argument\n"; } ~test() { } test(test& t) { cout << "

单件模式+打开窗体+窗体构造函数参数

利用单件模式避免重复打开窗体,窗体为无参数构造函数模式. 注:该博客中有自动关闭窗体的方法 http://www.cnblogs.com/zfanlong1314/p/3567308.html 为了打开窗体时传入参数,可以改变方法的传递参数,本人修改后代码如下 /// <summary> /// 泛型实现窗体实例单件化/// </summary> /// <typeparam name="T">窗体类</typeparam> public

Spring4-自动装配Beans-通过构造函数参数的数据类型按属性自动装配Bean

1.创建Maven项目,项目名称springdemo17,如图所示 2.配置Maven,修改项目中的pom.xml文件,修改内容如下 <project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

Qt构造函数的参数:QObject *parent = Q_NULLPTR

几乎所有的Qt类的构造函数都会有一个parent参数.这个参数通常是QObject* 或者是 QWidget* 类型的.很多情况下它都会有一个初始值0,因此,即便你不去给它复制也没有丝毫的问题.于是,稍微偷懒一下,就会不自觉的忽略了这个参数.那么,这个参数到底是干什么用的呢? 其实,这个参数有很多用处.就像它的名字一样,这个参数指定了组件的父组件.对于一个对话框来说,对话框一般是不作为顶层容器出现的,因此在任务栏上一般是没有对话框的位置的.怎么指定这个对话框不是顶层容器呢?有父组件的组件不就不是

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 一个 MainWindo

Qt中的parent形参

在 派生类的构造函数初始化列表中 调用 父类的带有参数的构造函数,是为了初始化从父类继承来的成员变量.因为这些变量无法直接初始化,只能采用这种方式初始化. 而在qt中,MainWindow中的某成员变量(指向父组件的指针,假定为p)无法直接初始化,只能在初始化列表中调用QMainWindow(parent),把形参parent的值间接的传给p,使p完成初始化.

Qt configure 参数不完全说明

只需要加个 -fast参数就ok了.其他参数视自己情况而定,比如你不需要qt3支持可以添加-no-qt3support,或者不需要webkit插件 -no-webkit配置参数选项: 前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受. -release ........... 调试关闭.没有调试库,自己的项目只能发布,不能调试(没有调试库的缘故),如果你硬要编译debug版本的话,会提示找不到xxxxxd.dll * -debug ............. 只有调试库

Qt Quick之StackView具体解释(1)

Qt Quick中有个StackView.我在<Qt Quick核心编程>一书中没有讲到.近期有人问起,趁机学习了一下,把它的基本使用方法记录下来. 我准备分两次来讲.第一次讲主要的使用方法.包含StackView的适用场景.基本属性和方法的使用方法.第二次讲一些略微复杂点的东西,比方被StackView管理的view的生命周期.delegate定制.查找等. 演示样例会用到动态创建组建,能够參考我之前的文章"Qt Quick 组件与对象动态创建具体解释".也会用到锚布局.