Quello che sto cercando di ottenere è che un widget possa esistere in due layout diversi, in questo caso in QHBoxLayout e in QVBoxLayout. Sto implementando un sistema che cambia dinamicamente tra i due layout quando cambia l'orientamento dello schermo di un dispositivo.Qt: stesso widget all'interno di due layout diversi
Attualmente sto creando, diciamo un widget composito complesso chiamato myWidget e aggiungendo in un due diversi layout:
MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;
vlayout->addWidget(wgt);
hlayout->addWidget(wgt);
Ora immaginate che entrambi i layout sono ospitati all'interno di un layout 'root', e che questo layout radice può ridimensionarsi in una modalità "orizzontale" più ampia di quella alta e in una modalità "ritratto" più alta che ampia.
MyWidget viene visualizzato correttamente solo nel primo layout in cui è stato aggiunto e quando i layout vengono commutati, mostra tutti i dati errati o non lo sono affatto.
Non so se qui abbia senso, ma questo è il mio problema. Forse quando viene chiamato l'evento switch, tutti i widget figlio e i layout dovrebbero essere ridimensionati, quindi sembrerebbe sempre giusto. L'unico problema è che non so come.
questione connessa: http://stackoverflow.com/questions/2990283/qt-change-qwidget-layout – rubenvb