2010-12-04 12 views
1

Gibt es trotzdem die richtige frameGeometry für ein Fenster, für das show() noch nicht aufgerufen wurde? Im Allgemeinen scheint es, dass frameGeometry() == geometry() vor einem Fenster auf dem Bildschirm angezeigt wird.Wie bekomme ich frameGeometry ohne das Fenster zu zeigen

Ich möchte nicht zuerst show() aufrufen und dann bewegen, weil es ein merkliches Flimmern im Display verursacht.

Offensichtlich kann ich nur ein Fenster (das erste, das ich erstelle) und erinnere mich an die Größe der Grenzen und was nicht, aber ich kann wirklich nicht glauben, es gibt keine Standard-QT-Weg, dies zu tun. Ist dort eines?

Ich benutze Qt 4.6.3, Windows 7, (K) Ubuntu 10.04.

+0

Ich bezweifle, dass es eine plattformunabhängige Möglichkeit gibt, die Fenster-Systemgeometrie (die außerhalb der Kontrolle von Qt liegt) eines noch nicht im Windowing-System erzeugten Widgets mitzuteilen. –

+0

@Frank, das mag wahr sein, aber Qt soll mir Plattformunabhängigkeit geben. Und nur durch die Verwendung anderer Apps scheint es so zu sein, dass alle Plattformen eine Möglichkeit haben, die Fenstergeometrie vorherzusagen (indem Fenster vor dem Erscheinen auf dem Bildschirm positioniert werden). –

Antwort

0

Sie könnten versuchen, Ihr Fenster weit außerhalb des Desktopbereichs zu verschieben und es dann anzuzeigen. Nachdem Sie die Informationen zur Rahmengeometrie erhalten haben, können Sie sie an die richtige Position verschieben, die genau so funktionieren sollte wie an dieser Position.

+0

Das scheint unter Windows zu funktionieren, aber bei KDE wird das Fenster irgendwie immer in den Bereich verschoben. Ich weiß nicht, ob QT das oder KDE selbst macht. –

Verwandte Themen