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