我只是在阅读 Qt 中布局的示例代码,我发现 Hboxlayout 和 VBoxlayout 有以下两行,
QVBoxLayout *vbox = new QVBoxLayout();
QHBoxLayout *hbox = new QHBoxLayout(this);
我不明白其中的区别,为什么在后者中有一个 this 指针作为参数发送,而不是在第一个?
this 指针实际上指的是什么?
为什么在后一个中有一个 this 指针作为参数发送,而不是在第一个中?
两个构造函数都存在,请参见QHBoxLayout和QVBoxLayout。
this 指针实际上指的是什么?
调用带有指针的变体时,此指针(this
在您的情况下)获取新对象的所有权,这意味着它在自身被删除时也会将其删除。
否则,您需要自己删除对象(或稍后设置父对象)。在盒子布局的情况下,如上面链接的文档中所述,在这种情况下,您需要将布局添加到另一个布局。
正如@Mat 提到的,这是Qt 中的一般概念,另请参见QObject::Qbject(QObject* parent = 0)。