Was ich versuche zu erreichen ist, dass ein Widget in zwei verschiedenen Layouts existieren könnte, in diesem Fall in QHBoxLayout und in QVBoxLayout. Ich implementiere ein System, das dynamisch zwischen den beiden Layouts wechselt, wenn sich die Bildschirmausrichtung eines Geräts ändert.Qt: Gleiches Widget in zwei verschiedenen Layouts
Derzeit bin die Schaffung mir, sagen sie mal, einen komplexen Verbund Widget genannt mywidget und das Hinzufügen in ein zwei verschiedenen Layouts:
MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;
vlayout->addWidget(wgt);
hlayout->addWidget(wgt);
Nun stell dir vor, dass beiden Layouts innerhalb eines ‚root‘ Layouts gehostet werden, und dass Dieses Root-Layout kann in einen Modus mit größerem als hohem "Landscape" und in einen Modus mit größerem als breitem "Portrait" geändert werden.
Das MyWidget wird nur in dem ersten Layout korrekt angezeigt, in dem es hinzugefügt wird, und wenn die Layouts umgeschaltet werden, zeigt es alles falsch oder gar nicht an.
Ich weiß nicht, ob ich hier einen Sinn habe, aber das ist mein Problem. Wenn das Schalterereignis aufgerufen wird, sollten alle untergeordneten Widgets und Layouts in der Größe geändert werden, sodass es immer richtig aussieht. Das einzige Problem ist, dass ich nicht weiß wie.
Verwandte Frage: http://stackoverflow.com/questions/2990283/qt-change-qwidget-layout – rubenvb