2008-08-27 6 views
2

Gibt es eine Möglichkeit ein Kind anfängliche Fensterposition in Qt angeben?Qt Child Fenster Placement

Ich habe eine Anwendung, die auf Linux und Windows läuft und es sieht aus wie das Standardverhalten von Qt der Window Manager können Sie die Platzierung der untergeordneten Fenster bestimmen.

Unter Windows ist dies in der Mitte des Bildschirms der Eltern, auf das sinnvoll erscheint.

Unter Linux in GNOME (metacity) immer in der oberen linken Ecke ist das ärgerlich. Ich kann keine Window-Manager Einstellungen für metacity finden, die mir erlauben Fenster Platzierung zu steuern, so würde Ich mag dieses Verhalten außer Kraft zu setzen.

Antwort

3

Qt Widget Geometry

Rufen Sie den Zug (x, y) -Methode für das Kind Fenster vor Show(). Die Standardwerte für x und y sind 0, weshalb sie in der oberen linken Ecke erscheinen.
Sie können auch die Position des übergeordneten Fensters verwenden, um eine relative Position für das Kind zu berechnen.

0

Im Allgemeinen würde ich empfehlen, Fensterpositionen nicht zu erzwingen, außer wenn Ihre Anwendung einige sehr spezielle Fensteranforderungen hat. Es ist die Aufgabe des Fenstermanagers, zu bestimmen, wo neue Fenster platziert werden und die meisten von ihnen machen gute Arbeit. Wenn MetaCity keine gute Position auswählt, dann ist das das Problem.

Wenn Sie Ihre eigene Fensterplatzierung durchführen, erhalten Sie möglicherweise ein besseres Ergebnis als ein schlechter Fenstermanager, aber Sie verpassen auch die intelligenten Fensterplatzierungsalgorithmen, die in fortgeschritteneren Fenstermanagern verfügbar sind.