I have QDockWidget(not floating, only closed) inside one QWidget. I have some widgets inside each QDockWidget- their heights should be equal. These internal widgets can be hidden via the context menu.
My internal widgets should be of equal height. I did it as follows:
void MyDocksPanel::redistributeSpace()
{
QBoxLayout * lay = (QBoxLayout *)layout();
for (int i = 0; i < lay->count(); i++)
{
QWidget * dock = lay->itemAt(i)->widget();
if (dock == NULL)
continue;
int size = 0;
foreach(QWidget * subWidget, dock->findChildren<QWidget*>())
size += subWidget->isVisible() ? 1 : 0;
if (dock->isVisible() && (size == 0))
dock->hide();
lay->setStretch(i, size);
}
}
Everything works fine until I add some const elements to each QDockWidget: some horizontal scrollbars and some shortcuts ... Now my internal widgets have different sizes. But I need their heights to be very equal.
QLayoutdefines widget sizes at one level of the widget hierarchy. How can I make subscripts selected for height?
3 subspecies versus 2 shifts

3 2:

, :

5 37,37,37,28,28...