在不丢失拉伸因子的情况下替换 Qsplitter 中的小部件

replace widget in Qsplitter without losing the stretch factor

我在同一个 splliter 中有 2 个小部件(按钮),我想用 Tabwidget 替换第一个。我失去了正确的拉伸因子 (1:1) 它会像 (2:1) 或不像旧因素(当它只有 2 个按钮时)

splitter->addwidget(qbut1);
splitter->addwidget(qbut2);
splitter->insertwidget(0,tab);

甚至当我在第一个选项卡和一个按钮上添加时..选项卡的大小比按钮大 我怎样才能做到 (1:1) 我试试

splitter->setStretchFactor(0,1);
splitter->setStretchFactor(1,1);

但是没用

您可以使用 QSplitter::setSizes 设置拆分的大小。为了达到一对一的比例,你可以使用这样的东西:

int width = splitter->width();
QList<int> sizes;
sizes << width/2 << width/2;
splitter->setSizes(sizes);

请注意,这只是设置初始大小,用户仍然可以随意调整它们的大小。另外,重新阅读有关拉伸因子的文档,听起来您可能误解了它们的含义。