当你在Qt中使用setLayout时,布局会变成你的孩子吗?
Do Layouts become your children when you use setLayout in Qt
代码:
class MyWidget: public QWidget
{
public:
MyWidget();
~MyWidget();
private:
QHBoxLayout* theLayout;
QVBoxLayout* subLayout1;
QVBoxLayout* subLayout2;
//More subLayouts
}
MyWidget::MyWidget()
{
theLayout = new QHBoxLayout();
subLayout1 = new QVBoxLayout();
subLayout2 = new QVBoxLayout();
//More subLayouts
//-------- Fill subLayouts with widgets using addWidget --------
theLayout->addLayout(subLayout1);
theLayout->addLayout(subLayout2);
//add all subLayouts
setLayout(theLayout);
}
MyWidget::~MyWidget()
{
//Destructor with nothing in it
}
**注意:布局是类的成员。
所以我知道,在子布局填充的小部件现在是MyWidget的孩子(或者至少这是我认为如果不请告诉我),所以我不需要在解构器中删除它们(Qt清理它们正确吗?),但布局也是MyWidget的孩子还是我需要在解构器中删除这些?
正如文档所说,setLayout
调用将表示给定的布局。因此,这个小部件将是它的父部件,因此您不需要手动删除它。
我认为如果可能的话,应该使用带实参的构造函数。而且你不需要将布局存储为成员如果你只是初始化它们
相关文章:
- 如何使用C/C++在MacOSX中获得键盘布局
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 布局兼容类型的并集
- Qt自定义QPush按钮未显示在布局上
- 更改"child's parent's style sheet"时如何将孩子的样式表重置为 Qt 默认样式表?
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 为什么 isVisible 在 QWidget 孩子中不起作用
- 调整布局上的 QGraphicsView 小部件的大小
- 如何在qt中将对象添加到现有布局中?--已解决
- 将布局映射到内存地址
- OOP使用不同的结构与孩子一起构建建议
- C++继承的虚拟类的内存布局
- 检查nullptr是否100%保护内存布局不受segfault影响
- C++ Python 的扩展 - 安全内存访问和内存布局
- QTree查看新行,没有布局就不可见已更改
- 类似元组的类模板的反向内存布局
- C++对象布局是否必须静态定义?
- 集合布局上的 Qt 分割错误
- QT将图像从缩略图拖放到网格布局(QVTKOpenGLWidget)?
- 当你在Qt中使用setLayout时,布局会变成你的孩子吗?