Anordnung SubWindows in QMdiArea

Alles rund um die Programmierung mit Qt
Antworten
hel800
Beiträge: 16
Registriert: 5. Dezember 2007 17:54

Anordnung SubWindows in QMdiArea

Beitrag von hel800 »

Hallo,

ich habe eine QMdiArea der ich nach und nach SubWindows zuweise. Diese werden auch angezeigt und mithilfe der Funktion tileSubWindows() über die gesamte Fläche gekachelt.

Ich möchte nun, dass stehts die gleiche Reihenfolge beim tiling der Fenster eingehalten wird. Im Beispiel von zwei Fenstern möchte ich Fenster 1 immer links dargestellt haben, Fenster 2 immer rechts. Allerdings wird das aktuell aktive Fenster zuerst, sprich links angezeigt, nach einem tileSubWindows() Aufruf.

Die Funktion setActivationOrder( WindowOrder order ) sollte diese Reihenfolge eigentlich festlegen. Ich stelle order auf QMdiArea::StackingOrder, dies hat jedoch keine Auswirkung, die Reihenfolge hängt weiterhin von der Activation Reihenfolge ab.

Ich verwende das aktuelle Qt SDK für Windows mit Qt 4.7.0, QtCreator und MinGW Umgebung.

Hat jemand eine Idee, woran das liegen könnte, oder einen alternativen Lösungsvorschlag? Bin für jeden Hinweis dankbar.
koppi
Beiträge: 29
Registriert: 21. Dezember 2010 14:30
Wohnort: Augsburg
Kontaktdaten:

Re: Anordnung SubWindows in QMdiArea

Beitrag von koppi »

Hallo hel800, hast Du inzwischen eine Lösung gefunden. Würde mich interessieren, wie Du die Sortierungsreihenfolge hinbekommen hast..
hel800
Beiträge: 16
Registriert: 5. Dezember 2007 17:54

Beitrag von hel800 »

Nein, leider noch nicht, habe das issue geschoben :-/. Falls du irgendwelche Ideen hast, würde ich mich freuen. Ich möchte auch ungern eine komplett neue Tiling-Funktion schreiben. Sondern einfach die vorhandene nutzen. Das muss doch möglich sein irgendwie? :x
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Bei mir funktioniert die voreingestellte Order wunderbar. egal welches aktiv ist, links steht immer das zuletzt hinzugefügte.

Code: Alles auswählen

mdiArea->addSubWindow(l2);
mdiArea->addSubWindow(l1);
mdiArea->tileSubWindows(); // zeigt 1 nun immer links, l2 immer rechts.
Qt-4.7.1 unter Gentoo Linux.
Antworten