Я пытаюсь добиться того, чтобы виджет мог существовать в двух разных макетах, в данном случае в QHBoxLayout и QVBoxLayout. Я внедряю систему, которая динамически переключается между двумя макетами при изменении ориентации экрана устройства.
В настоящее время я создаю, скажем, сложный составной виджет под названием MyWidget и добавляю его в два разных макета:
MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;
vlayout->addWidget(wgt);
hlayout->addWidget(wgt);
Теперь представьте, что оба макета размещены в «корневом» макете и что этот корневой макет можно изменить в более широкий, чем высокий «ландшафтный» режим, и в более высокий, чем широкий «портретный» режим.
MyWidget корректно отображается только в первом макете, в который он добавлен, а при переключении макетов все отображается неправильно или не отображается вообще.
Я не знаю, имею ли я здесь смысл, но это моя проблема. Возможно, когда вызывается событие switch, все дочерние виджеты и макеты должны быть изменены, чтобы они всегда выглядели правильно. Единственная проблема в том, что я не знаю как.