首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QLayout是怎么回事->setParent

QLayout是怎么回事->setParent
EN

Stack Overflow用户
提问于 2009-12-10 07:51:30
回答 2查看 814关注 0票数 0

当我尝试用setParent更改布局的位置时,结果是不起作用的或奇怪的。

以下是工作原理:

代码语言:javascript
复制
ui.txDiag_1->setParent(ui.tab_2);
movingHlayout = new QVBoxLayout(ui.tab_2);
movingHlayout->setSpacing(3);
movingHlayout->setMargin(3);
movingHlayout->setObjectName(QString::fromUtf8("movingHlayout"));
movingHlayout->addWidget(ui.txDiag_1);

但这不是(movingHlayout已经预先构造好了):

代码语言:javascript
复制
ui.txDiag_1->setParent(ui.tab_2);
movingHlayout->setParent(ui.tab_2);
movingHlayout->setSpacing(3);
movingHlayout->setMargin(3);
movingHlayout->setObjectName(QString::fromUtf8("movingHlayout"));
movingHlayout->addWidget(ui.txDiag_1);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-10 17:24:49

您可能需要在设置布局的小部件上调用setLayout()。

http://doc.qt.io/qt-5/qwidget.html#setLayout

正如您从文档中看到的,布局的所有权将自动设置为目标小部件。

票数 2
EN

Stack Overflow用户

发布于 2015-09-23 14:05:13

为了完成另一个答案,这里是setParent不能像您预期的那样工作的原因:

setParent不是在QLayout实现中,而是仅在QObject中。所以使用它只会改变指针的所有权和删除,而不会改变小部件的布局机制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1877786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档