如何将窗口小部件从一个选项卡移动到另一个选项卡并保留布局

yan*_*nce 3 qt

我有一个标签小部件,所有标签都有相同的布局,所以我想在用户更改标签时移动小部件.这将是什么代码.我尝试过一些东西,但似乎总是缺少一件事.以下只有一次工作但不是当前选项卡更改时调用的插槽:txDiag_1是一个自定义小部件,占用整个选项卡区域tabList.at(i)是对tabWidget内的选项卡的引用,movingHlayout是一个水平布局.

ui.txDiag_1->setParent(tabList.at(1));
movingHlayout->setParent(tabList.at(1));
movingHlayout->setSpacing(3);
movingHlayout->setMargin(3);
movingHlayout->setObjectName(QString::fromUtf8("movingHlayout"));
movingHlayout->addWidget(ui.txDiag_1);
tabList.at(1)->setLayout(movingHlayout);
Run Code Online (Sandbox Code Playgroud)

我想也许我应该首先删除旧的小部件,但我想我可以破坏旧的布局并每次创建一个新的但仍然没有工作.

Mar*_*ius 6

只是为了澄清一下,您有一组控制窗口小部件的选项卡,当用户更改选项卡时,它会稍微改变,并且您希望重用该窗口小部件而不是为每个选项卡创建一个窗口小部件?

如果是这种情况,那么添加一个QTabBar并拥有一个小部件.然后将tabbar上的currentChanged信号连接到您自己的插槽,因此当用户更改当前选项卡时,您将更新该小部件.