Qt: один и тот же виджет внутри двух разных макетов

Я пытаюсь добиться того, чтобы виджет мог существовать в двух разных макетах, в данном случае в QHBoxLayout и в QVBoxLayout. Я реализую систему, которая динамически переключается между двумя макетами при изменении ориентации экрана устройства.

В настоящее время я создаю, скажем, сложный составной виджет под названием MyWidget и добавляю его в два разных макета:

MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;

vlayout->addWidget(wgt);
hlayout->addWidget(wgt);

Теперь представьте, что оба макета размещены в «корневом» макете, и что этот корневой макет может изменяться в более широкий, чем высокий «ландшафтный» режим, и в более высокий, чем широкий «портретный» режим.

MyWidget отображается правильно только в первом макете, в который он был добавлен, а когда макеты переключаются, он показывает все неправильно или совсем не отображается.

Я не знаю, имею ли я здесь смысл, но это моя проблема. Возможно, когда вызывается событие переключения, все дочерние виджеты и макеты должны быть изменены, чтобы они всегда выглядели правильно. Проблема только в том, что я не знаю как.

9
задан Gerstmann 21 September 2010 в 08:33
поделиться