То, что я пытаюсь достичь, заключается в том, что виджет может существовать в двух разных макетах, в данном случае в QHBoxLayout и в QVBoxLayout. Я реализую систему, которая динамически переключается между двумя макетами, когда меняется ориентация экрана устройства.Qt: тот же виджет внутри двух разных макетов
В настоящее время я создаю, скажем, сложный композитный виджет под названием MyWidget и добавить его в двух различных компоновок:
MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;
vlayout->addWidget(wgt);
hlayout->addWidget(wgt);
Теперь представьте, что обе макеты размещаются в макете «корень», и что этот корневой макет может изменяться в более широкий, чем высокий «пейзаж» режим, и в более высокий, чем широкий «портретный» режим.
MyWidget корректно отображает только первый макет, который он добавляет, и когда макеты переключаются, он показывает все неправильно или вообще не работает.
Я не знаю, есть ли здесь смысл, но это моя проблема. Возможно, когда событие switch вызывается, все дочерние виджеты и макеты должны быть изменены, поэтому он всегда будет выглядеть правильно. Проблема только в том, что я не знаю, как это сделать.
Связанный вопрос: http://stackoverflow.com/questions/2990283/qt-change-qwidget-layout – rubenvb