在Qsplitter中替换widget而不会丢失拉伸因子

时间:2015-05-29 11:02:04

标签: qt qsplitter

我在同一个splliter中有两个小部件(按钮),我想用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);

但它不起作用

1 个答案:

答案 0 :(得分:2)

您可以使用QSplitter::setSizes设置分组的大小。要实现一对一的比例,您可以使用以下内容:

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

请注意,这仅设置初始大小,用户仍可以随意调整大小。此外,重新阅读有关伸展因子的文档,听起来好像你可能误解了它们的含义。