Qt中HBoxLayout和VBoxLayout之间的差异

时间:2013-02-23 19:02:13

标签: qt layout

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

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

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

这个指针实际指的是什么?

1 个答案:

答案 0 :(得分:1)

  

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

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

  

这个指针实际指的是什么?

当调用带有指针的变量时,此指针(在您的情况下为this)取得新对象的所有权,这意味着它在删除时也会删除它。

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

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