gpt4 book ai didi

c++ - 除了内存管理,QObject 的父对象还有什么用?

转载 作者:太空狗 更新时间:2023-10-29 21:15:32 25 4
gpt4 key购买 nike

我知道,当 QObject被摧毁,它也摧毁了它的所有 child 。但是,在我最近的所有 Qt 代码中,我总是将任何类的成员(比如 QMainWindow)声明为直接成员,而不是指针成员,这使得 Qt 的内存管理很少(如果有的话)有用。

那么,这是 QObjects 的父属性吗?用于别的东西? 从文档中,不清楚 QBoxLayout::addWidget()拥有小部件的所有权(我认为它没有)。(当您将小部件添加到布局时, their parent will be set to the parent of the layout ,如 thuga 所指出的)。

最佳答案

我想到了其他用途:

  • 当使用 moveToThread() 时,整个对象树都会被移动,而不仅仅是推送的对象(否则,内存管理变得不可能);
  • QWidget 使用新语义扩展父/子关系,例如:
    • 子元素的坐标是相对于父元素的;
    • 父部件会将其子部件裁剪到它自己的几何体中;
    • 兄弟小部件的顺序决定了它们的 z 顺序(堆叠);
    • 未处理的鼠标/键盘事件在层次结构中向上传播;
    • 顶级小部件的父级将使该顶级小部件共享相同的任务栏条目并居中显示在父级的顶部(典型情况:对话框)。

关于c++ - 除了内存管理,QObject 的父对象还有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com