Qt QLayout是怎么回事?>;setParent
当我试图用setParent更改布局的位置时,结果是不起作用的或奇数的 以下工作:Qt QLayout是怎么回事?>;setParent,qt,Qt,当我试图用setParent更改布局的位置时,结果是不起作用的或奇数的 以下工作: ui.txDiag_1->setParent(ui.tab_2); movingHlayout = new QVBoxLayout(ui.tab_2); movingHlayout->setSpacing(3); movingHlayout->setMargin(3); movingHlayout->setObjectName(QString::fromUtf8("movingHlayou
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);
但事实并非如此(MovingLayout已提前构建):
您可能需要在正在设置布局的小部件上调用setLayout()
从文档中可以看到,布局的所有权将自动设置为目标小部件。要完成另一个答案,以下是
setParent
无法按预期工作的原因:
setParent
不在QLayout
实现中,而仅在QObject
中。因此,使用它只会更改指针的所有权和删除,而不会更改小部件的布局机制
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);