Widgets mit Layout bewegen

Alles rund um die Programmierung mit Qt
Antworten
SvenA
Beiträge: 7
Registriert: 7. Juli 2014 09:49

Widgets mit Layout bewegen

Beitrag von SvenA »

Hallo!

Ich habe folgendes Problem:

Ich habe diverse Formulare, welche ich mit dem Designer im QtCreator erzeugt habe.
Nun will ich unter bestimmten Bedingungen weitere Felder hinzufügen und der Übersichtlichkeit
das gesamte Formular in eine Seite eines TabWidgets verschieben.

Wie kann ich dies bewerkstelligen? Ich habe schon diverse Versuche gemacht und habe entweder
das Problem, daß ich das oberste Layout des Formulars nicht verschieben kann oder, wenn ich
die Elemente einzeln verschiebe (mit findChildren/setParent), dass das Layout völlig zerstört ist.

Hat irgendjemand eine Idee?

Gruß
Sven
Benutzeravatar
dirkski
Beiträge: 1
Registriert: 19. Juni 2019 13:34

Re: Widgets mit Layout bewegen

Beitrag von dirkski »

SvenA hat geschrieben: 26. Juni 2019 21:45 Hallo!
[...]
Wie kann ich dies bewerkstelligen? Ich habe schon diverse Versuche gemacht und habe entweder
das Problem, daß ich das oberste Layout des Formulars nicht verschieben kann oder, wenn ich
die Elemente einzeln verschiebe (mit findChildren/setParent), dass das Layout völlig zerstört ist.
Hallo auch,
wenn ich es richtig verstehe musst Du das oberste Layout schon vorher in ein QWidget als Container stecken
und dann das gesamte Widget mit setParent verschieben. Und mit show() wieder sichtbar machen.

hth
SvenA
Beiträge: 7
Registriert: 7. Juli 2014 09:49

Re: Widgets mit Layout bewegen

Beitrag von SvenA »

Hallo!

Ich habe das dann mit viel experimentieren noch geschafft!
Der Weg über "setParent()" hat nicht geklappt.

Der Trick war, anstatt zu versuchen das Layout mit allen Elementen aus
dem QWidget herauszulösen und später wieder einzusetzen, einfach das
Layout einem neuen QWidget mit setLayout() zuzuweisen. Dadurch wird
das Layout aus dem alten QWidget herausgelöst und dem neuen QWidget
zugewiesen ohne daß dies irgendwie dabei verändert wird.

Dann konnte ich das neue QWidget mit allen meinen (Unter)elementen
einfach beliebig verschieben.

Gruß
Sven
Antworten