1

我只是在阅读 Qt 中布局的示例代码,我发现 Hboxlayout 和 VBoxlayout 有以下两行,

    QVBoxLayout *vbox = new QVBoxLayout();
    QHBoxLayout *hbox = new QHBoxLayout(this);

我不明白其中的区别,为什么在后者中有一个 this 指针作为参数发送,而不是在第一个?

this 指针实际上指的是什么?

4

1 回答 1

1

为什么在后一个中有一个 this 指针作为参数发送,而不是在第一个中?

两个构造函数都存在,请参见QHBoxLayoutQVBoxLayout

this 指针实际上指的是什么?

调用带有指针的变体时,此指针(this在您的情况下)获取新对象的所有权,这意味着它在自身被删除时也会将其删除。

否则,您需要自己删除对象(或稍后设置父对象)。在盒子布局的情况下,如上面链接的文档中所述,在这种情况下,您需要将布局添加到另一个布局。

正如@Mat 提到的,这是Qt 中的一般概念,另请参见QObject::Qbject(QObject* parent = 0)

于 2013-02-23T19:08:21.940 回答